调用DLL搭建界面,结构体中含有char a[64]的怎么在界面输入EB90

2019-07-18 00:57发布

typedef struct
{
        char        a[64];        //2~16个十六进制字符。
     UINT    b;                   //0~8
       UINT       c;        //8~64   
DE_STRUCT;
函数原型:BOOL WINAPI (DE_STRUCT& eSParam) //写参数函数
作为写参数函数,因为必须用簇的形式作为输入,里面含有字符数组所以直接用如下面图中那样用字符串输入肯是错误的。但这个确实我想要的结果,所有输入参数必须在整个界面上。
1.jpg
单独开调用像下面这样设置也是同样错误,没有提示错误,但是根本就没有写进底层去,这个参数对应的地址的值没有任何变化,请教叫人指点一下,因为输入参数必须在界面上写入,所以把字符串单个拆开常量不可能,且还有两三百个的也太不切实际了,应该怎么办呢。

3.jpg

4.jpg

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
技术牛人小渣子
2019-07-18 12:29
方法一:char 那个可以用U8数组代替,数组大小64
UNIT 那个是 U32。
整个可以用 一个U8数组,数组大小64 + 32/8=68.
在OUTPUT端然后拆分 前面64个组成一个字符串,和后面的4个组成一个UINT。

方法二
或者你可以看范例。自己在范例里搜DLL。里面有关于簇封装的。
你的字符串,需要转化为U8数组。用捆绑簇,和下面U32组成一个簇。
OUTPUT再把数组还原为字符串。

以上两种方法都可以试试。推荐看范例的操作方式。

带指针或者引用的,无非是 先申请一个内存空间。后面往空间里填充数值。
至于后面几个说的 二次封装(wrapper),暂时应该不用考虑。能用简单问题解决就用简单方法。

一周热门 更多>