dll调用

Damon_Dong 2015-12-14 03:20:03
只是一个很简单的WIN32 Console Application。 在这个工程里调用了两个dll,比如A.dll和B.dll,无论是debug还是release都可以编译通过,但是运行时会出问题:Debug下正常,Release下会报错:无法定位程序输入点XXX于动态链接库B.dll上。其中XXX是A.dll的方法,这两个dll没有任何联系,也不存在在一个dll中调用了另一个dll的问题。我换做另外一个dll,比如C.dll于B.dll一起使用,也是会报错::Debug下正常,Release下会报错:无法定位程序输入点XXX于动态链接库B.dll上。其中XXX是C.dll的方法。
太奇怪了!我猜想是VS配置的问题,各位大神!谁碰到过这样的问题吗?
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Saleayas 2015-12-15
  • 打赏
  • 举报
回复
我不知道你的 XXX ,两次是否是同一个函数。 如果是的话,试试仅仅使用 exe 加载 B, 同时直接加载 这个 XXX。 看看 导入库和 .dll 是否是一致的。
赵4老师 2015-12-14
  • 打赏
  • 举报
回复
严格区分exe和dll的Debug、Release版。不要混用。
Damon_Dong 2015-12-14
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
学会使用depends.exe和dumpbin.exe
关键是我release模式下分别调用这两个dll,是没有问题的,就是一起调用的时候就会出问题!
信阳毛尖 2015-12-14
  • 打赏
  • 举报
回复
那两个dll是你写的,还是别人的? 意思就是dll的版本一定要对应上,不能release的调用debug版本的dll, release版本的dll,debug版和release版本的调用者都可以用
Damon_Dong 2015-12-14
  • 打赏
  • 举报
回复
引用 楼主 u010150199 的回复:
只是一个很简单的WIN32 Console Application。 在这个工程里调用了两个dll,比如A.dll和B.dll,无论是debug还是release都可以编译通过,但是运行时会出问题:Debug下正常,Release下会报错:无法定位程序输入点XXX于动态链接库B.dll上。其中XXX是A.dll的方法,这两个dll没有任何联系,也不存在在一个dll中调用了另一个dll的问题。我换做另外一个dll,比如C.dll于B.dll一起使用,也是会报错::Debug下正常,Release下会报错:无法定位程序输入点XXX于动态链接库B.dll上。其中XXX是C.dll的方法。 太奇怪了!我猜想是VS配置的问题,各位大神!谁碰到过这样的问题吗?
dll肯定有的,要不然肯定报错找不到dll了
lx624909677 2015-12-14
  • 打赏
  • 举报
回复
你的程序本身如果是Debug版本的,就去调Debug的DLL,否则就是release的
赵4老师 2015-12-14
  • 打赏
  • 举报
回复
学会使用depends.exe和dumpbin.exe
信阳毛尖 2015-12-14
  • 打赏
  • 举报
回复
所有的dll与exe放在同一级目录下 你检查一下release输出目录有没有你调用的dll文件

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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