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

C++加载debug版本dll和release版本dll的问题
今天发现程序在加载一个第三方dll时,在debug版本下,如果加载的dll是release版的就load不上,需要加载debug版本的dll才能load成功,但是印象里没有debug下必须只能加载debug版dll的情况啊
请问大家有没有碰到过?
debug下不能加载release的dll是什么原因?
------解决思路----------------------
GetLastError查看错误id, VS自带错误id参看器查看错误信息
------解决思路----------------------
用Loadlibrary动态加载试试
------解决思路----------------------
碰到过

一般完整的库都会给你一个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版本不利于调试、运行速度有较大差异等等,需要你自己积累了。



------解决思路----------------------
debug下不能加载release的dll
debug编译出的库或者可执行程序,里面包含了很多调试信息,同时,有些程序通过宏判断,在Debug和Release环境下可能编译出的代码不一样,接口可能也不一样