将C ++代码导出为DLL并使用C#导入?

时间:2011-11-30 21:27:33

标签: c# c++ windows dll

我有一个用C ++编写的程序,它带有一个调用一堆其他C ++类/函数的main函数。

我是C ++的新手(曾经是​​python程序员),所以我想知道 - 为了能够将它导出为可从C#程序导入的DLL,我需要遵循哪些步骤?有什么建议吗?

2 个答案:

答案 0 :(得分:5)

如果您希望C ++类在C#应用程序中可用,则需要在C ++程序中使用COM或定位CLR(即使用C ++ / CLI)。

如果您只想在C ++ DLL中调用一些函数来从C#调用POD类型参数,那么将每个函数声明为extern "C"以避免名称损坏并使用DLLImport属性导入功能。 PInvoke.net是一个很好的资源。

答案 1 :(得分:1)

如果您只导出普通函数而不是类,则可以p/invoke它们。如果ypu真的需要这些类,你必须将你的项目编写为C++/CLI并在c#项目中引用它,就像任何其他.NET程序集一样。