无法定位输入点于动态链接库

woshiygjs 2010-09-17 08:36:27
我在启动自己写的程序时,会出现如下错误,但是换一台电脑就能正常运行,请问出现这样的错误是什么原因
...全文
301 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshiygjs 2010-09-17
  • 打赏
  • 举报
回复
[Quote=#1楼 mappor的回复] 老哥,错误呢?[/Quote]
编译没问题,运行时出现这样的对话框
mapoor 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 woshiygjs 的回复:]
我在启动自己写的程序时,会出现如下错误,但是换一台电脑就能正常运行,请问出现这样的错误是什么原因
[/Quote]
参考:
在里边的启动栏里把**.dll前面的勾去掉就行了
1、开始——运行——msconfig——启动——把加载项***.dll的那个勾勾去掉。 重启电脑,通常到这就可以了,如果还弹出来再进行第二步
2、开始——运行——regedit 在下面的位置删除相应键值: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

说明:以上问题大多是杀毒残留,就是杀毒后,病毒被删除,但启动项里相关加载设置还在,解决方法就是上述方法,如果找不到那个加载失败的启动项说明是做了伪装,具体他伪装到那个启动项不好说需要自己分析分析。

注:启动项并不一定指向特定的dll名字,提示中的加载失败的项可能只是启动项其中一个需要调用的文件,所以要了解你所有启动项的意义,这样才能找出可疑的启动项来删除,从而解决加载失败的问题。正常的启动项在百度都可以搜索到其含义。
白云飘飘飘 2010-09-17
  • 打赏
  • 举报
回复
可能是ace.dll的版本不同,里面导出的函数不一样
mapoor 2010-09-17
  • 打赏
  • 举报
回复
老哥,错误呢?
赵4老师 2010-09-17
  • 打赏
  • 举报
回复
在cmd窗口里面执行如下命令
depends /p 你的执行程序
查看你的执行程序具体调用了哪个目录下的dll
woshiygjs 2010-09-17
  • 打赏
  • 举报
回复
非常感谢各位的热心解答,问题终于解决了,之所以会出现这样的情况是因为在装其他软件的时候在C盘的一个文件夹下又装了ACE.dll及ACEd.dll两个动态库,导致无法正确定位,将C盘里的删掉就可以了,折腾了老半天啊,终于可以松口气了
赵4老师 2010-09-17
  • 打赏
  • 举报
回复
UnDecorateSymbolName("?run_reactor_event_loop@ACE_Reactor@@QAEHP6AHPAV1@@Z@Z",...);
结果是
public: int __thiscall ACE_Reactor::run_reactor_event_loop(int (__cdecl*)(class ACE_Reactor *))

C++和C的链接符号不一致
老邓 2010-09-17
  • 打赏
  • 举报
回复
确定这个DLL和EXE是同一个编译器编译的?
比如,是否有可能这个DLL是其他编译器编译的呢?另外,LoadLibrary的时候,建议使用绝对路径,以便加载正确的DLL。
老邓 2010-09-17
  • 打赏
  • 举报
回复
确定这个DLL是同一个编译器编译的?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧