C++加载debug版本dll和release版本dll的问题

小鸟向前飞 2015-08-31 06:28:41
今天发现程序在加载一个第三方dll时,在debug版本下,如果加载的dll是release版的就load不上,需要加载debug版本的dll才能load成功,但是印象里没有debug下必须只能加载debug版dll的情况啊
请问大家有没有碰到过?
debug下不能加载release的dll是什么原因?
...全文
667 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二班的码农 2015-08-31
  • 打赏
  • 举报
回复
debug下不能加载release的dll debug编译出的库或者可执行程序,里面包含了很多调试信息,同时,有些程序通过宏判断,在Debug和Release环境下可能编译出的代码不一样,接口可能也不一样
bear234 2015-08-31
  • 打赏
  • 举报
回复 1
碰到过 一般完整的库都会给你一个debug版的dll和一个release版的dll 根据你的需要来使用 至于为什么有这个区别 为什么release的时候用debug版的dll会报错 首先,有可能会报错 有可能不会 这由库的开发人员决定 其次,你问为什么,你只要知道了debug和release的区别,你就知道为什么了 总之,debug的时候,编译器提供了一些辅助手段来帮助程序员debug,比如
        #ifdef    _DEBUG
  #define    VERIFY(x)    if(    (x)    ==    0)    report_assert_failure()
  #else
  #define    VERIFY(x)    (x)
  #endif
另外,有的时候,忘记初始化一些变量的时候,debug下可以正常运行,release就会报错~~~还有很多,比如release版本不利于调试、运行速度有较大差异等等,需要你自己积累了。
sdghchj 2015-08-31
  • 打赏
  • 举报
回复
用Loadlibrary动态加载试试
dustpg 2015-08-31
  • 打赏
  • 举报
回复
GetLastError查看错误id, VS自带错误id参看器查看错误信息

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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