我想将HIDAPI库用于自制USB设备。而不是必须将VC ++项目编译成自己的.dll并在我拥有的.Net项目中引用它,我宁愿只在.Net项目中存在代码并且能够直接引用它。
原因是我想避免使用.dll引用另一个.dll,而只是只有一个.dll文件。
我已经反过来完成了,在我做一些JNI时,我在C ++程序中使用了C#类。
我在这里尝试做的可能吗?在某个地方的.Net项目中是否有使用C ++的白痴指南?
答案 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
是的,不要这样做。