我可以使用C ++库和Classes以C#语言构建程序吗? 如果我可以,怎么样?
答案 0 :(得分: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
属性进行修饰,以指明其实现位置。
答案 1 :(得分:1)
你当然可以!
如果您有预先存在的库@Darin所指的机制可以自动完成。使用www.swig.org