首先,C++的某个方法定义如下,输入参数是两个结构体
结构体的定义如下
那C#代码里要如何实现调用这个方法并传入结构体参数
传地址吧,参数是指针。C#同样定义结构体,传地址看看。
我这里有demo 就是c#调用c++ dll的 给你网盘 但是要visual 2019才能开项目。
链接:https://pan.baidu.com/s/1QTq8MnvavuT13etgpDzLWw
提取码:7gm2
复制这段内容后打开百度网盘手机App,操作更方便哦
参照https://www.cnblogs.com/hongfei/archive/2012/12/26/2834121.html,转递指针
[DllImport("对应DLL文件名.dll", EntryPoint = "IJ_ConfigureAndStartPort", CallingConvention = CallingConvention.Cdecl)]
private static extern ulong IJ_ConfigureAndStartPort(LPCOMINFO lpComInfo,LPPRINTERINFO lpPrinterInfo);
你可以试试,我刚好以前用过这些功能,但我不能保证你能否成功。
通过 C# 调用 C++ 导出函数使用到了 P/Invoke 技术。你可以搜搜 P/Invoke 的相关知识。