我可以使用 C++ 库和类以 C# 语言构建程序吗?如果可以,怎么做?
问问题
73 次
2 回答
2
您可以使用P/Invoke
从托管代码调用非托管代码。puts
这是调用非托管函数的示例:
using System;
using System.Runtime.InteropServices;
class Program
{
[DllImport("msvcrt.dll")]
public static extern int puts([MarshalAs(UnmanagedType.LPStr)] string m);
[DllImport("msvcrt.dll")]
internal static extern int _flushall();
public static void Main()
{
puts("Hello World!");
_flushall();
}
}
这里的想法在于声明一个托管包装器,该包装器将匹配您要调用的非托管方法的签名。请注意方法是如何用extern
关键字标记的,并用DllImport
指示其实现位置的属性进行修饰。
于 2013-03-31T18:54:50.850 回答
1
绝对可以!
如果您有一个预先存在的库 @Darin 所指的机制可以自动完成。通过www.swig.org
于 2013-03-31T18:57:24.727 回答