从C#调用C函数

10
作为一个简单的例子,我有一个接收int类型参数、并且将其加1后返回增加后值的C函数。另一方面,在C#中我将输入数字放在文本框中。我该如何调用C函数处理这个数字,并从C#中将其返回呢?谢谢。
1个回答

13
你需要使用 P/Invoke。 如果你的 C DLL 包含一个名为 increase_int 的函数,那么你需要引用System.Runtime.InteropServices并执行以下操作:
[DllImport("mylib.dll")]
private static extern int increase_int(int in_value);

并从您的代码中使用它

int newValue = increase_int(oldValue);

你好,我无法调试程序,为什么在步过(F11)时控制不进入被调用的函数中呢? - Dark Knight
你不能使用 .Net 的标准调试机制来调试 C dll。 - Residuum
那个链接指向 MSDN 杂志的所有期刊索引,而不是某个特定的期刊或文章。有人能提供一个有效的链接或至少期刊号码吗? - NobbZ
@NobbZ,我找不到那篇文章了,因为微软不相信蒂姆·伯纳斯-李的教义“酷炫的URL不会改变”。我将用另一个教程来替换它,希望该URL能够更长时间地保留。 - Residuum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接