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

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;