可以从C#调用C ++代码吗?

是否可以从.NET语言(例如C#)中调用C ++代码(可能编译为代码库文件(.dll))?

具体来说,是C ++代码,例如RakNet网络库。

回答:

调用C 的一种简单方法是在C / CLI中创建包装程序集。在C /

CLI中,您可以像编写本机代码一样调用非托管代码,但可以像从C#中那样从C#调用C /

CLI代码。该语言基本上是通过与现有库互操作而设计的,作为其“杀手级应用”。

例如,使用/ clr开关进行编译

#include "NativeType.h"

public ref class ManagedType

{

NativeType* NativePtr;

public:

ManagedType() : NativePtr(new NativeType()) {}

~ManagedType() { delete NativePtr; }

void ManagedMethod()

{ NativePtr->NativeMethod(); }

};

然后在C#中,添加对ManagedType程序集的引用,并按如下方式使用它:

ManagedType mt = new ManagedType();

mt.ManagedMethod();

查看此博客文章,了解更多示例。

以上是 可以从C#调用C ++代码吗? 的全部内容, 来源链接: utcz.com/qa/401365.html

回到顶部