程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 跨越語言的障礙:C++調用C# DLL

跨越語言的障礙:C++調用C# DLL

編輯:關於C++

當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 小九的學堂

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved