-4

如何在 C# 和 C++ 之间进行互操作

4

2 回答 2

0

您不能直接从 C# 调用本机 DLL 中的函数,但可以通过称为 P/Invoke 的工具使用它们。http://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx

另一种选择是用 C++/CLI 编写包装器。C++/CLI 几乎是允许 .Net 代码包装和使用本机内容的标准方式。

最后,您还可以使用 P/Invoke 从 C# 调用 q.dll 函数,而不是使用包装器。

于 2012-08-12T19:13:17.640 回答
0

extern "c" 是 c++ 特定的,因为它告诉编译器导出函数“就像在 c 中一样”,所以在 c 中不需要它。

如果您希望它同时使用 c 和 c++ 编译,您可以执行类似的操作。

#ifdef __cplusplus
extern "C" {
#endif

__declspec(dllexport) void D()
{
}

#ifdef __cplusplus
}
#endif

您还需要告诉 VS 构建一个 dll,而不是一个可执行文件。

于 2012-08-12T23:58:08.150 回答