Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
如何添加VC++;DLL作为我的C#Visual Studio项目中的参考?_C#_.net_Visual Studio_Interop - Fatal编程技术网

如何添加VC++;DLL作为我的C#Visual Studio项目中的参考?

如何添加VC++;DLL作为我的C#Visual Studio项目中的参考?,c#,.net,visual-studio,interop,C#,.net,Visual Studio,Interop,我想将VC++DLL引用添加到我的C#Visual Studio项目中。但当我尝试添加它时,我看到,“它不是有效的程序集或COM组件” 请在C++项目中建议如何使用VC++DLL作为参考。在C准备使用时,只能使用C++组件,例如用C++或CLI编写或作为COM服务器编写。 如果你的组件是一个普通的C++ DLL,你需要写一些包装代码,最好是C++/CLI< P>。从C++中使用C++ DLL有两种选择:COM互操作,或者P/UnjKE。COM互操作包括在C++ DLL中创建COM对象,然后添加它

我想将VC++DLL引用添加到我的C#Visual Studio项目中。但当我尝试添加它时,我看到,“它不是有效的程序集或COM组件”


请在C++项目中建议如何使用VC++DLL作为参考。

在C准备使用时,只能使用C++组件,例如用C++或CLI编写或作为COM服务器编写。


如果你的组件是一个普通的C++ DLL,你需要写一些包装代码,最好是C++/CLI

< P>。从C++中使用C++ DLL有两种选择:COM互操作,或者P/UnjKE。COM互操作包括在C++ DLL中创建COM对象,然后添加它作为引用。此时,您可以像使用C#对象一样使用COM对象(大部分情况下)


p/Invoke允许您从C#调用导出的函数(想想从C#调用标准Win32 API函数)。这可能更容易建立,因为你需要做的只是导出一个函数,但是这可能会导致你在C++中修改你的代码,因为它不是一个非常OOP的做事方式。 运行:

tlbimp/out:MyOldCom.dll MyNewAssembly.tlb

然后像使用任何其他程序集一样使用它

请参阅

(工业工程)

一种方法是将DLL打包为COM类,另一种方法是使用DllImport

看起来像