當C#項目需要引用C++dll的時候可以直接使用DLLIMPORT來進行調用。而反向的話,C++項目並不能簡單靠引用來使用C#DLL。因為C++項目默認配置是沒有公共語言運行庫支持的。所以我們需要更改一些配置來進行對C# dll的調用。步驟如下:
首先我們完成C# dll開發:
namespace Csharp { public class Class1 { public string Name = string.Empty; public Class1() { Name = "We can use C#!!"; } } }
編譯就可以獲得Csharp的dll。
其次對C++項目屬性的配置: 添加公共語言運行時支持 /clr
代碼中需要使用#using和using namespace來進行對dll的調用。當分配內存時注意使用gcnew,需要gc來給其分配內存。托管對象需要使用^來進行聲明。
#include "stdafx.h" #using "Csharp.dll" using namespace Csharp; int _tmain(int argc, _TCHAR* argv[]) { Class1 ^a = gcnew Class1(); printf("%s/n", a->Name); return 0; }
運行後結果如下:
如此便可實現C++對C# dll的調用。
作者:cnblogs 小九的學堂