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

How can I add C++ Source Files and Headers to a C# .Net project?

本文关键字:添加 Net 项目 C++ 源文件      更新时间:2023-10-16

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

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

我反过来做了,当我做一些 JNI 的东西时,我在C++程序中使用了 C# 类。

我在这里想做的事情可能吗?是否有在 .Net 项目中使用C++的白痴指南?

"我在这里想做的事情可能吗?"

不,这样是不可能的。不能在同一项目类型中编译这些源。您需要为 c++/cli 程序集提供一个单独的项目,并引用由 c# 项目导入的此项目。

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

如何在单个程序集中混合 C# 和C++代码?

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

1) 将C++代码编译为 .obj 文件

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

3) 使用 C++ 链接器将 C# 网络模块直接链接到C++对象文件,以创建混合语言程序集

还有这个:将本机C++链接到 C# 应用程序

是的,不要那样做。