我有.c和.h文件被修改为在cpp应用程序中使用,实际上他们有
#ifdef __cplusplus
extern "C"{
#endif
预处理线。我想知道是否以及如何使用c#程序中定义的函数。也许我必须为那段代码创建一个dll?
答案 0 :(得分:1)
以下是一个来自MSDN的简单示例:
using System;
using System.Runtime.InteropServices;
class PlatformInvokeTest
{
[DllImport("msvcrt.dll")]
public static extern int puts(string c);
[DllImport("msvcrt.dll")]
internal static extern int _flushall();
public static void Main()
{
puts("Test");
_flushall();
}
}
假设您愿意将现有代码编译为.DLL
答案 1 :(得分:1)
你们似乎没有得到它 - 他没有dll,他有c ++源文件:
您有两个选择
将c ++代码翻译成C#并将其直接合并到您的应用程序中
使用c ++编译器从源文件创建dll并使用PInvoke访问它
如果您需要修改c ++代码来创建dll或使其可以从C#访问,我们无法在没有发布完整代码的情况下知道。
答案 2 :(得分:0)
这是MSDN博客上的一个明显示例。您可以使用IntPtr加载DLL路径。