Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.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++;windows C#应用程序中的本机代码和DLL_C#_C++_.net_Native_Managed - Fatal编程技术网

消费C++;windows C#应用程序中的本机代码和DLL

消费C++;windows C#应用程序中的本机代码和DLL,c#,c++,.net,native,managed,C#,C++,.net,Native,Managed,我知道这已经被问了很多次了,但我想我有点纠结 我有一个Win32 C++应用程序,它使用了来自另一个公司的SDK。该sdk使用了几个dll文件,甚至一些exe文件,我没有这些文件的源代码,甚至不确定它们是如何编译的 我有他们演示的源代码,展示了如何使用sdk 我能够构建演示并在我的计算机上运行它 我想在windows c#应用程序中使用sdk。我可以将其限制为32位应用程序 我正在使用Visual Studio 2015。当我打开他们的演示时,它确实需要导入,所以它的制造商必须使用Visual

我知道这已经被问了很多次了,但我想我有点纠结

<>我有一个Win32 C++应用程序,它使用了来自另一个公司的SDK。该sdk使用了几个dll文件,甚至一些exe文件,我没有这些文件的源代码,甚至不确定它们是如何编译的

我有他们演示的源代码,展示了如何使用sdk

我能够构建演示并在我的计算机上运行它

我想在windows c#应用程序中使用sdk。我可以将其限制为32位应用程序

我正在使用Visual Studio 2015。当我打开他们的演示时,它确实需要导入,所以它的制造商必须使用Visual Studio 2015的早期版本,但我不能确定

我创建了一个Windows运行时组件(通用Windows)项目。这创建了标准的Class1.cpp和.h文件

然后我创建了我的空白应用程序(通用Windows)应用程序项目。然后,我将应用程序项目中的引用添加到运行时组件项目中

此时,我添加了代码以在应用程序中创建Class1的实例。我在Class1构造函数中设置了一个断点并调试了应用程序。它在我的断点处停止,所以我知道应用程序和组件之间的连接正常工作

接下来,我将代码导入到运行时组件中。此代码包括向sdk添加包含文件。我还必须将sdk.lib文件添加到链接器中。我添加了包含所有.h文件的目录

在这一点上,我还没有对sdk进行任何调用

当我现在调试应用程序时,只要我尝试实例化Class1,就会出现异常。它不允许我调试到构造函数或任何东西中

找不到指定的模块。(来自HRESULT的异常:0x8007007E)

我已经查看了异常的所有细节,但它没有给出它正在寻找的模块的任何指示

我已经在sdk的.bin文件夹中添加了所有sdk文件。其中包括许多DLL、EXE和其他文件。我将它们作为内容添加到组件项目中。所有文件都将复制到应用程序exe所在的最终输出文件夹中


有没有办法解决这个问题?

试试fusion log viewer,看看哪个模块加载失败了。你可以说“app.exe”,但也可以说“Windows Runtime”。出于安全原因,UWP应用程序的访问权限受到高度限制,并且不会真正输出EXE。也许你应该只做一个标准的.NET应用程序?我只想制作一个规则的.NETC++DLL,它可以与正则.NET C++应用程序共享,但是在创建应用程序时,却看不到一个合适的向导模板。当我制作非windows运行时DLL时,它没有C#sharable类。如果您能告诉我在VS2015中使用哪些模板,我会使用您的答案。@Millie Smith什么是fusion log viewer,我该如何使用它?