搞了一天没搞定,急死了。无法定位程序输入点于**.dll

wanglovec 2014-01-17 02:30:18
现在引用一个第三方的DLL,在debug下无任何问题,但在relase下 一运行就报错

无法定位程序输入点***于**.dll。 这究竟是怎么回事 郁闷死了!
大家帮帮忙啊
...全文
5744 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2014-02-12
  • 打赏
  • 举报
回复
找不到入口点 是哪个库的哪个函数这个应该比较好定位的吧. 排除法, 是最简单的了.
黑泡泡选手 2014-02-11
  • 打赏
  • 举报
回复
找第三方解决这个问题~
wanglovec 2014-02-11
  • 打赏
  • 举报
回复
引用 19 楼 hust_wangyajun 的回复:
也有可能是名字改编的原因,你有dumpbin -exports 查看一下dll的输出函数,在用dumpbin -imports 看看debug 和release 版本的exe各自的输入函数。debug能成功,应该可以找到对应的符号,release不成功,应该找不到对应的符号,再看看出现的原因。
》》确实是 在DEBUG 下 引用的那个函数正常,但RELEASE 不正常 。可是奇怪的是 我把这个函数注释了 还报 找不到入口点
wanglovec 2014-01-20
  • 打赏
  • 举报
回复
引用 19 楼 hust_wangyajun 的回复:
也有可能是名字改编的原因,你有dumpbin -exports 查看一下dll的输出函数,在用dumpbin -imports 看看debug 和release 版本的exe各自的输入函数。debug能成功,应该可以找到对应的符号,release不成功,应该找不到对应的符号,再看看出现的原因。
>> 刚分析了 没有任何问题。
华美乐章 2014-01-20
  • 打赏
  • 举报
回复
这个问题我也遇到过。 我当时使用的加密库DLL文件最低要求XP,在windows2000上软件报这个错误。 主要情况是系统的DLL版本过低。
hust_wangyajun 2014-01-20
  • 打赏
  • 举报
回复
也有可能是名字改编的原因,你有dumpbin -exports 查看一下dll的输出函数,在用dumpbin -imports 看看debug 和release 版本的exe各自的输入函数。debug能成功,应该可以找到对应的符号,release不成功,应该找不到对应的符号,再看看出现的原因。
孤影品茗 2014-01-20
  • 打赏
  • 举报
回复
用depends查,看少了什么库,一个个添加吧
wanglovec 2014-01-20
  • 打赏
  • 举报
回复
我这是relase 版本的 为什么它报 缺失 msvcr90d.dll 它不应该是debug版本下使用的吗? 如果是这样 我是不是配置出错了, 导致引用了 debug下的东西?
wanglovec 2014-01-20
  • 打赏
  • 举报
回复
引用 15 楼 wanglovec 的回复:
下面的框架可能不正确和/或缺失,没有为 ntdll.dll 加载符号】 user32.dll msvcr90d.dll
>> 这也是编译器报的信息
wanglovec 2014-01-20
  • 打赏
  • 举报
回复
下面的框架可能不正确和/或缺失,没有为 ntdll.dll 加载符号】 user32.dll msvcr90d.dll
wltg2001 2014-01-19
  • 打赏
  • 举报
回复
最大的可能是DLL版本有问题,比如他提供的就是debug版的DLL
yimao_44 2014-01-19
  • 打赏
  • 举报
回复
缺少他需要的依赖文件 或其他依赖的DLL 或者你的debug下的某些文件不是最新的导致区分找到入口或出现断口
wanglovec 2014-01-19
  • 打赏
  • 举报
回复
检查过了, DLL不分debug和relase版。
wanglovec 2014-01-19
  • 打赏
  • 举报
回复
引用 9 楼 gordon3000 的回复:
[quote=引用 4 楼 wanglovec 的回复:] [quote=引用 3 楼 shen_wei 的回复:] 看你加载的DLL 是否区分Debug 和Release
不区分[/quote]看样子像区分的。无法定位通常是DLL、LIB以及.h不一致。[/quote] 那我再去检查下
副组长 2014-01-18
  • 打赏
  • 举报
回复
引用 4 楼 wanglovec 的回复:
[quote=引用 3 楼 shen_wei 的回复:] 看你加载的DLL 是否区分Debug 和Release
不区分[/quote]看样子像区分的。无法定位通常是DLL、LIB以及.h不一致。
vcf_reader 2014-01-18
  • 打赏
  • 举报
回复
通常,你的程序有些小的BUG,对于DEBUG而言,有小的BUG不会有大的问题,照样可以运行。
边走边瞧 2014-01-17
  • 打赏
  • 举报
回复
信息太少,没办法确定是什么原因导致无法加载dll。多半和编译选项有关,不妨看看是否写了绝对路径。
wanglovec 2014-01-17
  • 打赏
  • 举报
回复
引用 6 楼 zhaowech 的回复:
遇到过,那是因为dll版本不对,但是既然debug可以,说明版本应该没问题。 请考虑以下,因为一般默认的路径是cpp所在路径,楼主release的时候是到目录下运行的吧? 然后dll文件放在cpp和h文件所在目录,你把dll文件拷贝到release版本exe所在目录下,然后 点击运行exe试试
>> 依然如故
孤影品茗 2014-01-17
  • 打赏
  • 举报
回复
遇到过,那是因为dll版本不对,但是既然debug可以,说明版本应该没问题。 请考虑以下,因为一般默认的路径是cpp所在路径,楼主release的时候是到目录下运行的吧? 然后dll文件放在cpp和h文件所在目录,你把dll文件拷贝到release版本exe所在目录下,然后 点击运行exe试试
shen_wei 2014-01-17
  • 打赏
  • 举报
回复
看你加载的路径是否正确,
加载更多回复(4)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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