如何在 C# 和 C++ 之间进行互操作
问问题
250 次
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 回答