背景介绍:
现有 C 和 C ++ 的混合代码,我要用 C++/CLI 去调用它,考虑到语言的差异,所以要将前者封装成 DLL。
C 函数原型:
int fb_data_send_Me(omap_usb_handle *usb, const void *data, unsigned size, unsigned count);
该函数的作用是往指定的 usb 对象中写入 data ,data 的长度是 size,count 是写的次数;
其中:fb_data_send_Me 第一句代码是这样的:
unsigned char* ptr = (unsigned char*) data; // 可见传递的是 unsigned char 类型数组;
------解决方案--------------------
第一个参数可能就错了
omap_usb_handle 类型是托管的还是非托管的,如果是非托管的不能用^
------解决方案--------------------
没仔细看,你使用c++/cli啊,他可以直接调用非托管dll,而不要像C#那样还要自己再封装一下
------解决方案--------------------
你好 问下这个问题解决了么 我也是报的同样的错误,在C#中调用了C++的代码,导致堆栈出错。但是对封装、封送知识还不大了解,嫩那个不能赐教下。多谢多谢