查看: 2125|回复: 8

[随意闲聊] 谁能告诉我LoadError:Exec Format Error是什么?

[复制链接]

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

发表于 2011-10-15 22:10:02 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  1. zh99998  21:54:16
  2. LoadError: Exec format error
  3.         from E:/RPG/Ruby/lib/ruby/1.9.1/Win32API.rb:13:in `initialize'
  4.         from E:/RPG/Ruby/lib/ruby/1.9.1/Win32API.rb:13:in `dlopen'
  5.         from E:/RPG/Ruby/lib/ruby/1.9.1/Win32API.rb:13:in `initialize'
  6.         from (irb):6:in `new'
  7.         from (irb):6
  8.         from E:/RPG/Ruby/bin/irb:12:in `<main>'
复制代码
哎呀,蛋疼什么的最有爱了
梦石
0
星屑
310
在线时间
953 小时
注册时间
2007-4-25
回帖
798
发表于 2011-10-15 23:52:41 | 显示全部楼层
库的头、符号、段等格式不对呗。想要看实现细节,自己读 dln.c、win32.c,从 引用了 DLN_ENOEXEC 处开始挖。
su@rpg.blue:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

 楼主| 发表于 2011-10-16 11:04:54 | 显示全部楼层
苏小脉 发表于 2011-10-15 23:52
库的头、符号、段等格式不对呗。想要看实现细节,自己读 dln.c、win32.c,从 引用了 DLN_ENOEXEC 处开始挖 ...

什么意思?这个是在Win32API.new的时候就报错了……虽然我用的是CRuby但是也不至于在Win32API.new就报错啊?再说我调用的StartRM和Ruby一毛钱关系都没有啊……

点评

本机可用  发表于 2011-10-16 11:05
哎呀,蛋疼什么的最有爱了
回复

使用道具 举报

梦石
0
星屑
310
在线时间
953 小时
注册时间
2007-4-25
回帖
798
发表于 2011-10-16 23:10:50 | 显示全部楼层
yangff 发表于 2011-10-16 11:04
什么意思?这个是在Win32API.new的时候就报错了……虽然我用的是CRuby但是也不至于在Win32API.new就报错 ...

库的头、符号、段等格式不对,当然是在 Win32API.new 的时候就报错了,因为 Windows 的 LoadLibrary 是在这里调用的。检查下你的二进制生成是否正确吧。
su@rpg.blue:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

 楼主| 发表于 2011-10-16 23:19:56 | 显示全部楼层
本帖最后由 yangff 于 2011-10-16 23:20 编辑
苏小脉 发表于 2011-10-16 23:10
库的头、符号、段等格式不对,当然是在 Win32API.new 的时候就报错了,因为 Windows 的 LoadLibrary 是在 ...


必然正确,本机可用。。测试C++可调用
哎呀,蛋疼什么的最有爱了
回复

使用道具 举报

梦石
0
星屑
310
在线时间
953 小时
注册时间
2007-4-25
回帖
798
发表于 2011-10-16 23:22:44 | 显示全部楼层
yangff 发表于 2011-10-16 23:19
必然正确,本机可用。。测试C++可调用

既然你生成的二进制在某个机器上出了问题,那就绝无“必然正确”之理,忽略环境问题的程序员不是好战斗机。
su@rpg.blue:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

 楼主| 发表于 2011-10-17 18:40:35 | 显示全部楼层
苏小脉 发表于 2011-10-16 23:22
既然你生成的二进制在某个机器上出了问题,那就绝无“必然正确”之理,忽略环境问题的程序员不是好战斗机 ...

= =我又没修改什么就是按照C++正常的导出方式。。也没手贱选Debug之类的,优化也就是普通的O2,我和萌娘的配置也差不多,都是Win7 X64,按理说不至于


yangff于2011-10-17 18:40补充以下内容:
= =我又没修改什么就是按照C++正常的导出方式。。也没手贱选Debug之类的,优化也就是普通的O2,我和萌娘的配置也差不多,都是Win7 X64
哎呀,蛋疼什么的最有爱了
回复

使用道具 举报

梦石
0
星屑
310
在线时间
953 小时
注册时间
2007-4-25
回帖
798
发表于 2011-10-17 22:22:50 | 显示全部楼层
yangff 发表于 2011-10-17 18:40
= =我又没修改什么就是按照C++正常的导出方式。。也没手贱选Debug之类的,优化也就是普通的O2,我和萌娘 ...

我之前看你不是用了 #pragma *_seg 之类的指令么?瞎用的话难免会产生平台依赖性。
su@rpg.blue:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

 楼主| 发表于 2011-10-18 20:44:41 | 显示全部楼层
本帖最后由 yangff 于 2011-10-18 20:45 编辑
苏小脉 发表于 2011-10-17 22:22
我之前看你不是用了 #pragma *_seg 之类的指令么?瞎用的话难免会产生平台依赖性。 ...


确实用了,不过不用不行啊……这是很常见的使用方法不因该出问题的,绝大多数的Win Hook都是用这种方法共享数据的……
哎呀,蛋疼什么的最有爱了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部