使用托管C++;来自C的dll# 我用管理C++创建了一个DLL。现在我正试图从C#使用它。我已将该对象添加到项目引用中。对象浏览器正确显示dll中的对象,对象浏览器中dll的路径与实际路径相对应

使用托管C++;来自C的dll# 我用管理C++创建了一个DLL。现在我正试图从C#使用它。我已将该对象添加到项目引用中。对象浏览器正确显示dll中的对象,对象浏览器中dll的路径与实际路径相对应,c#,.net,c++,managed,C#,.net,C++,Managed,但是,当我运行C#程序时,它会抱怨: 未处理的异常:System.IO.FileNotFoundException:指定的模块可能无法处理 找不到。(来自HRESULT的异常:0x8007007E) 你知道还有什么要做吗 谢谢。 < P>我认为你缺少了托管C++程序集的其他程序集或DLL引用。 < P>你的托管C++程序集是否有其他依赖关系,包括非托管DLL?如果引用的程序集未能加载依赖项,您将在运行时看到此错误。您是否在未安装VS的计算机上运行发行版中的应用程序 我之所以这么问,是因为我在这里

但是,当我运行C#程序时,它会抱怨:

未处理的异常:System.IO.FileNotFoundException:指定的模块可能无法处理 找不到。(来自HRESULT的异常:0x8007007E)

你知道还有什么要做吗


谢谢。

< P>我认为你缺少了托管C++程序集的其他程序集或DLL引用。

< P>你的托管C++程序集是否有其他依赖关系,包括非托管DLL?如果引用的程序集未能加载依赖项,您将在运行时看到此错误。

您是否在未安装VS的计算机上运行发行版中的应用程序

我之所以这么问,是因为我在这里遇到了类似的问题:


<如果你向下滚动我的答案,你可以看到我做了什么帮助我。< /p> < p>检查C++程序集是否存在于与C程序相同的文件夹中。如果“复制本地”属性设置为true(在C++应用程序中引用C++ DLL),则应该自动复制。 <>如果C++ DLL在那里,最可能的问题是C++ DLL依赖于另一个非托管DLL,这是无法找到的(即C *不会将这些拷贝到应用程序文件夹中,因为它不知道非托管引用)。您可以在C++ DLL上使用以检查缺少的依赖项。
另一个可能的原因可能是MSVC运行时DLL出现问题。查看DependencyWalker是否抱怨缺少MSVCR*.dll、MSVCP*.dll等。。。文件。

True,使用的DLL之一不在路径上。谢谢。我们能在这里看到一些代码吗?