C#应用程序可以';使用/MDd标志编译时找不到Dll 我有一个C应用程序,它连接到几个C语言DLL,然后使用绑定来调用其他DLL中的C++函数。 这一切都很好,如果我用/MTD编译C++ DLL,但是当我使用/MDD时,我在C语言应用程序中得到了一个XMLPARSEExExt,抱怨它找不到任何DLL(它找不到我使用的第一个DLL)。我最好的猜测是,使用另一个交换机会导致它更改查找DLL的路径,从而导致失败。我使用DependencyWalker仔细查看,它实际上找不到的两个DLL是“IESHIMS.DLL”和“WER.DLL”。但是,我在DependecyWalker的树上看不到我的c#dll。有人知道这里可能出了什么问题吗

C#应用程序可以';使用/MDd标志编译时找不到Dll 我有一个C应用程序,它连接到几个C语言DLL,然后使用绑定来调用其他DLL中的C++函数。 这一切都很好,如果我用/MTD编译C++ DLL,但是当我使用/MDD时,我在C语言应用程序中得到了一个XMLPARSEExExt,抱怨它找不到任何DLL(它找不到我使用的第一个DLL)。我最好的猜测是,使用另一个交换机会导致它更改查找DLL的路径,从而导致失败。我使用DependencyWalker仔细查看,它实际上找不到的两个DLL是“IESHIMS.DLL”和“WER.DLL”。但是,我在DependecyWalker的树上看不到我的c#dll。有人知道这里可能出了什么问题吗,c#,visual-studio,dll,loading,C#,Visual Studio,Dll,Loading,此外,使用非调试等价物(/MD和/MT)也没有什么区别。无论如何,我不能使用/MT,因为它会导致另一个bug 编辑:我已经把问题缩小了一些。当使用VS2010命令提示符编译和链接时,我的应用程序工作正常,但在VS2008命令提示符下,它仍然无法找到Dll。有没有人知道这两种版本的VS之间有什么区别,它们可能导致我上面描述的行为 提前感谢,您是否根据相同的运行时库编译所有模块?发件人: “所有传递给链接器调用的模块都必须用同一运行库库编译器选项(/MD,/MT,/LD)编译。”< /P>是的,所

此外,使用非调试等价物(/MD和/MT)也没有什么区别。无论如何,我不能使用/MT,因为它会导致另一个bug

编辑:我已经把问题缩小了一些。当使用VS2010命令提示符编译和链接时,我的应用程序工作正常,但在VS2008命令提示符下,它仍然无法找到Dll。有没有人知道这两种版本的VS之间有什么区别,它们可能导致我上面描述的行为


提前感谢,

您是否根据相同的运行时库编译所有模块?发件人:


“所有传递给链接器调用的模块都必须用同一运行库库编译器选项(/MD,/MT,/LD)编译。”< /P>是的,所有的C++ DLL都是用这个选项编译的。