Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找非托管c+的依赖关系+;C中引用的dll# 我有一个C.Y.WiFrm应用程序,它使用了我在C++中写的DLL作为非托管代码。在4台测试计算机上,该程序的工作原理与预期相同。在8台测试计算机上,我运行程序时出错_C#_C++_.net_Dll_Unmanaged - Fatal编程技术网

C# 查找非托管c+的依赖关系+;C中引用的dll# 我有一个C.Y.WiFrm应用程序,它使用了我在C++中写的DLL作为非托管代码。在4台测试计算机上,该程序的工作原理与预期相同。在8台测试计算机上,我运行程序时出错

C# 查找非托管c+的依赖关系+;C中引用的dll# 我有一个C.Y.WiFrm应用程序,它使用了我在C++中写的DLL作为非托管代码。在4台测试计算机上,该程序的工作原理与预期相同。在8台测试计算机上,我运行程序时出错,c#,c++,.net,dll,unmanaged,C#,C++,.net,Dll,Unmanaged,无法加载DLL“myUnmanaged.DLL”。找不到指定的模块 该dll与c#exe位于同一目录中。Visual studio设置为在“编译”c#exe时将文件复制到该位置 由于该程序在某些计算机上工作,但在其他计算机上不工作,我猜应用程序工作的计算机上已经有一些dll,它们是我的程序工作所必需的 我将注意到,我的非托管dll包括从名为SetupApi.dll的windows工具包调用另一个dll。要使Visual Studio正确引用此dll,需要将VS直接指向它的lib文件,以便编译我的

无法加载DLL“myUnmanaged.DLL”。找不到指定的模块

该dll与c#exe位于同一目录中。Visual studio设置为在“编译”c#exe时将文件复制到该位置

由于该程序在某些计算机上工作,但在其他计算机上不工作,我猜应用程序工作的计算机上已经有一些dll,它们是我的程序工作所必需的

我将注意到,我的非托管dll包括从名为SetupApi.dll的windows工具包调用另一个dll。要使Visual Studio正确引用此dll,需要将VS直接指向它的lib文件,以便编译我的dll。所有正确运行我的程序的计算机的setupapi.dll都位于windows\system32目录中。某些无法正确运行我的程序的计算机的setupapi.dll也位于windows\system32目录中。为了进行测试,我将setupapi.dll与我的c#exe放在同一个目录中,然后在不工作的计算机上重新测试,结果是一样的

如何找出我缺少的哪些文件/依赖项阻止我的应用程序在某些计算机上工作

我正在使用VS express 2013编写软件。它缺少专业版的一些功能。一种解决方案是生成一个MSI文件,其中包含依赖项。但这是一个我无法访问的专业功能

在此问题上的任何协助都将不胜感激

关于32位/64位的信息:
C语言应用程序和非托管C++ DLL都是在32位(x86)中构建的。程序运行的测试计算机中有3台是64位win OS(vista 64位、win7 64位、win8.1 64位),程序运行的测试计算机中有一台是win7 32位。我的应用程序不工作的计算机包括32位和64位计算机。因此,我相当肯定我的问题与操作系统的比特度无关


请使用.net Reflector或Dependency walker确保您正在使用 x86或x64版本,根据您的需要–Gilad


这个对原始问题的评论最终有了解决方案。我按照建议使用dependency walker来查找缺少的dll。

请使用.net Reflector或dependency walker确保根据需要使用x86或x64版本。我在工作的测试计算机和不工作的测试计算机上运行dependency walker。两台计算机上列出的未找到的文件相同。我将深入研究.net Reflector和DW,看看是否能找到问题。感谢您指出这些工具。从系统内部尝试process monitor,它可以告诉您找不到哪个DLL。我研究了如何使用process monitor。在学习了几个小时有关过滤器的知识后,我仍然无法找到答案。我很高兴有人推荐它,因为它似乎是一个非常强大的工具,一旦学会。我最终还是找到了依赖沃克的答案。多亏了吉拉德和马特的帮助。依赖沃克不再可靠了。您应该使用Process Monitor或Fusion日志记录机制来帮助跟踪这一点。