专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

dll的引出函数中怎样传递数组?解决方法

发布时间:2011-06-28 13:38:04 文章来源:www.iduyao.cn 采编人员:星星草
dll的引出函数中怎样传递数组?
问题如上,调试了半天发现引出函数中的数组传递不对。

定义:extern "C" __declspec(dllexport) __stdcall int GetTU( unsigned char buffer[BUFFLEN],....); 

用静态方式调用:extern "C" __declspec(dllimport) __stdcall int GetTU(unsigned char,...);

i=GetTU(cData[BUFFLEN],...);

省略部分看过都是正确的,但是发现cData中的内容始终传的不对。网上的不少例子都不是数组变量,请问各位该如何解决这个问题?


------解决方案--------------------
用静态方式调用:extern "C" __declspec(dllimport) __stdcall int GetTU(unsigned char,...);
第一个参数这么变成unsigned char了,应该是unsigned char buffer[BUFFLEN],....);
另外 ,调用时
i=GetTU(cData,....);[BUFFLEN]就不能有了

------解决方案--------------------
extern "C" __declspec(dllimport) __stdcall int GetTU(unsigned char,...);有误!
改为extern "C" __declspec(dllimport) __stdcall int GetTU(unsigned char[BUFFLEN],...);有误!
1.若是以为数组可以考虑采用指针来传递参数
2.若用二维数组的话可以采用形如:
C/C++ code
typedef char (*PCHAR_ARRAY)[128];
PCHAR_ARRAY buffer;
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: