为什么又VC6.0开发发环境的dll,调用LoadLibrary加载dll成功,没有装VC6.0的系统则不成功?
AA.dll 为MFC dll,在AA.dll中调用了第三方的COM库, 编译时有warning:mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in MSVCRT.lib(dllmain.obj); second definition ignored。
在另一个进程中调用了这个AA.dll,用windbg调试release版本发现只要装了VC6.0 开发环境的系统时LoadLibrary成功,否则失败。( 不知道这个dll用到了那个VC6.0的特有的库?)
请大家帮我想想原因和解决办法?
[解决办法]
用depends看dll的依赖库
[解决办法]
额……mfcdll肯定要带上mfc滴库啊 要不就静态编译MFC哇
[解决办法]
把你开发的DLL的系统库连接属性改成static link这样dll就不再依赖于VC6的系统库了。