C++/CLI 调用 C DLL ,错误:此Bug常见来源包括用户对 COM-interope 或 Pinvoke的封送处理,这些错误可能会损坏堆栈
背景介绍:
现有 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 类型数组;