C#調用C++/Clr封裝的C++


1、在C++的project里面,先將屬性的配置類型修改為動態庫dll,同時把平台修改為x64,否則無法生成dll,必須利用__declspec(dllexport)導出個東西,類或者函數都可以,否則C++/Clr項目會提示無法打開文件***.lib,比如

#pragma once
#ifndef TEST1
#define TEST1 __declspec(dllexport)
#else
#define BM3D_DLL_CLASS __declspec(dllimport)
#endif

class TEST1 Test1
{
public:
Test1();
int dosomething();
};

2、在C++/Clr的project里面,先將屬性設置為公共語言運行時支持,再添加第一步生成的dll文件,注意,添加dll文件不能使用瀏覽找到文件位置的方式,必須點擊項目找到前面生成的dll,如下圖所示:

 3、添加完以后,中間層的類前面需要加上ref,最好把類放到一個namespace里面,比較符合C#的使用方式(具有封裝性),后面就可以用using namespace的方式調用了,而不是哪里都能調用;

 4、新建一個C#的project來調用C++/Clr生成的dll,注意,需要修改一下C#的輸出路徑到跟前面Project1和Project2的輸出路徑同一個地方,否則會提示缺少Project2缺少依賴項;

5、至此,一切OK,以后只需要直接生成C#項目就行了,C++/Clr和C++的項目會一起生成(因為有依賴關系);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM