如何将C ++源文件和标题添加到C#.Net项目?

时间:2015-03-16 22:05:58

标签: c# c++ visual-studio

我想将HIDAPI库用于自制USB设备。而不是必须将VC ++项目编译成自己的.dll并在我拥有的.Net项目中引用它,我宁愿只在.Net项目中存在代码并且能够直接引用它。

原因是我想避免使用.dll引用另一个.dll,而只是只有一个.dll文件。

我已经反过来完成了,在我做一些JNI时,我在C ++程序中使用了C#类。

我在这里尝试做的可能吗?在某个地方的.Net项目中是否有使用C ++的白痴指南?

2 个答案:

答案 0 :(得分:2)

  

“我在这里尝试做的是什么?”

不,这种方式不可能。这些源无法在同一项目类型中编译。您需要为c ++ / cli程序集创建一个单独的项目,并参考由c#项目导入的项目。

答案 1 :(得分:2)

等等,答案是肯定的,但显然它完全是邪恶的:

How do I mix C# and C++ code in a single assembly?

如果您的C ++代码未使用/ clr:safe编译(即使用/ clr或/ clr:pure编译),请执行以下操作:

1)将您的C ++代码编译成.obj文件

2)将您的C#代码编译成.netmodule,使用/ AddModule引用C ++ .obj文件

3)使用C ++链接器将C#netmodule直接链接到C ++目标文件,以创建混合语言程序集

此外:Linking native C++ into C# applications

是的,不要这样做。