i nt SDT_ ReadBaseMsg (
int iPort,
unsigned char * pucCHMsg,
unsigned int * puiCHMsgLen,
unsigned char * pucPHMsg,
unsigned int * puiPHMsgLen,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。参见 SDT_OpenPort。
pucCHMsg
[out] 无符号字符型指针,指向读到的文字信息,其长度由 puiCHMsgLen 参数
输出。该指针指向的存储空间由调用者分配,不得小于 256 字节。
puiCHMsgLen
[out] 无符号整型数指针,指向读到的文字信息长度,最长 256 字节。
pucPHMsg
[out] 无符号字符型指针,指向读到的相片信息,其长度由 puiPHMsgLen 参数
输出。该指针指向的存储空间由调用者分配,不得小于 1024 字节。
puiPHMsgLen
[out] 无符号整型数指针,指向读到的相片信息长度,最长 1024 字节。
iIfOpen
[in] 整数,参见 SDT_ResetSAM
上面是函数的详细说明,写成一个DLL文件,给
unsigned char * pucCHMsg,
unsigned int * puiCHMsgLen,
unsigned char * pucPHMsg,
unsigned int * puiPHMsgLen,
这个4个参数赋值,这4个参数是接收值
在外部调用时传递出去,赋值无法解决,求解答
C++ DLL编程,unsigned char * 赋值问题
答案:2 悬赏:0 手机版
解决时间 2021-02-15 13:25
- 提问者网友:謫仙
- 2021-02-15 07:43
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-02-15 07:50
需要传出的参数内容首先要在调用者那分配内存,DLL内部只能进行数据copy动作,否则就传不出去
全部回答
- 1楼网友:行路难
- 2021-02-15 09:07
1、直接使用memse函数给数组赋值即可。
2、memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。 memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。其函数原型为:
void *memset(void*,int,unsigned);
其中void*表示地址
memset()的第一个实参是数组名,数组名作参数即数组作参数,它仅仅只是一个数组的起始地址而已。
实现第一个memset()函数调用的内存布局见图7-3。 在函数memset()栈区,从返回地址往上依次为第1,2,3个参数。第1个参数中的内容是main()函数中定义的数组ia1的起始地址。第2个参数是给数组设置的值(0),第3个参数是数组的长度(50*2)。函数返回时,main()函数的数组中内容全置为0。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯