暂时还不知道如何用cmake导入使用C#的dll
能使用C++的解决方案来导入
设置:项目属性
我电脑上是设置了三个地方(才能保证后面的导入命名空间不出错)
1.
2.
3.
虽然不知道具体原因,但是查了很多文章之后最后找到这个办法是可行的
之后就能导入C#的命名空间了
方法:导入库
#include <stdlib.h>
#include <iostream>
#pragma comment(lib,"ws2_32.lib")
//#using "D:\\haatrpc2021\\bin\\Debug\\MBoardDebug.dll"
#using "../x64/Debug/MBoardDebug.dll"
#pragma managed
//导入C#dll的命名空间
using namespace MBoardDebug;
使用
//创建摄像头拍照的类,Program为库中定义的类
Program^ c = gcnew Program();
//在前面定义了C++的字符串string recv_buf2,需要传入到需要的接口,需要转换成库能识别的C#的类型String
String^ inifile = gcnew String(recv_buf2.c_str());
//使用类调用接口
int resultOpenCamera = c->open_camera(inifile);
int resultInitialize = c->Initialize();
int resultInitIsp = c->InitIsp();
注意把dll的x86和x64 debug和release的类型在生成控制台解决方案的时候对应起来,把dll放在生成目录下即可