我有一个使用VS2013构建的dll(C / C ++),它由exe使用,让我称之为exe_1来调用另一个exe,exe_2。
使用相同的代码(和def文件)在VS 6上构建了一个dll多年前和它完美地运行,以便exe_1使用 - > old_dll - >调用exe_2
现在问题是新的dll存在一些问题,因此它没有调用上面提到的exe_2。我有dll和amp;的源代码。 exe_2但不是exe_1。因此我使用了一些DebugBreak语句来检查exe_1是否被exe_1调用,但结果是否定的。
以下是我可以在我的新dll(VS 2013)&旧的dll(VS 6)
新dll摘要
6000 .data
1000 .idata
C000 .rdata
4000 .reloc
1000 .rsrc
5F000 .text
2F000 .textbss
旧Dll摘要
C000 .data
6000 .rdata
3000 .reloc
1000 .rsrc
2F000 .text
警告:找不到至少一个延迟加载依赖项模块。 警告:由于延迟加载相关模块中缺少导出功能,至少有一个模块具有未解析的导入。
由于我觉得第3点是罪魁祸首,我尝试了很多选项,通过在C / C ++下指定/ Mtd(也试过/ Mt)选项来删除该依赖关系 - >代码生成 - >运行时库。
但我得到的是_CrtDumpMemoryLeaks,_CrtMemCheckpoint,__ free_dbg e.t.c&的一些未解决的链接器错误。因此我无法使用此选项生成新的dll。
请提供您的意见。