精易论坛

标题: C++的回调函数,麻烦高手帮忙看下 [打印本页]

作者: xo37    时间: 2024-3-11 20:31
标题: C++的回调函数,麻烦高手帮忙看下
[C++] 纯文本查看 复制代码

struct Sam
{
        static const unsigned long MAX_CH = 6;
        unsigned short                Status;
        unsigned short        wRIn;
        unsigned short        wROut;
        unsigned short        wRWch;
        long                        nCtrl;
        unsigned long        dwTime;
        float                        fCH[MAX_CH];
};
typedef void(__stdcall *PSAMPCALLBACK)(void *userData, const Sam smp[], size_t count);
UTM_API RegisterSampCallback(Hdl, PSAMPCALLBACK callBack, void *userData, size_t count);



1.这个 RegisterSampleCallback 函数,是用来注册回调函数的,用于获取自定义 Sam 数据结构 的smp(数组)数据?
2.Hdl是握手的句柄,这个没有疑问;
3.void *userData这个应该是个指针?
4. size_t count是获取smp数组的个数?


易语言 传参数,只能用基本数据类型,且,不能用字节集;

所以,这个注册回调函数,用易语言到底怎么用呢,主要是要读取并处理最终的自定义结构体中的数据,麻烦写个例子;

大神解答,可以追加的;



补充内容 (2024-3-12 06:55):
1. 结构体的数据类型,某家能看懂,无需《解答》
2. 用易语言写个注册回调函数实例,然后,读取SAM结构体的数据;


补充内容 (2024-3-12 06:59):
没有易语言 源码实例,不评最佳答案……
作者: 小白子    时间: 2024-3-11 20:52



参数限制的问题,安装易语言助手然后用我这个插件可以解决,插件下载地址:突破子程序指针限制,回调传参更方便

如果不想用插件,那就用指针。在回调再通过指针复制数据到易语言的数据类型就可以解决
作者: xz0455    时间: 2024-3-11 21:30
[JavaScript] 纯文本查看 复制代码


结构Sam

{

静态常量无符号长MAX_CH=6;

无符号短状态;

无符号短wRIn;

无符号短wROut;

无符号短wRWch;

long nCtrl;

无符号长dwTime;

浮点fCH[MAX_CH];

};

typedef void(__stdcall*PSAMPCALLBACK)(void*userData,const Sam smp[],size_t count);

UTM_API RegisterSampCallback(Hdl,PSAMPCALLBACK回调,void*userData,size_t计数);

作者: xo37    时间: 2024-3-12 06:53
xz0455 发表于 2024-3-11 21:30
[mw_shl_code=javascript,true]、

结构Sam

感谢回复,但这个 结构体的 数据理性,还是能看懂的;
看不懂的是怎么通过 UTM_API这个注册 回调函数……  不是说了吗,写个易语言调用例子;
作者: xo37    时间: 2024-3-12 07:58
小白子 发表于 2024-3-11 20:52
参数限制的问题,安装易语言助手然后用我这个插件可以解决,插件下载地址:突破子程序指针限制,回调传 ...

大神的插件,只适配助手,没有适配视觉库;
在助手下,启用插件,打开调用dll 的源码就崩了 —— 这个源码,是准备做成ec模块的;
在视觉库下,打开同一份源码,是没任何问题的
作者: xo37    时间: 2024-3-12 08:06
xz0455 发表于 2024-3-11 21:30
[mw_shl_code=javascript,true]、

结构Sam

另外,unsigned long,并不是无符号长整数,而是 无符号整数;
作者: 小白子    时间: 2024-3-12 10:27
xo37 发表于 2024-3-12 07:58
大神的插件,只适配助手,没有适配视觉库;
在助手下,启用插件,打开调用dll 的源码就崩了 —— 这个源 ...

易代码框增强v1.4.3 - 数据分类,常量条件bug修复

我刚给ide支持库修复了好几个bug呢,你下最新的试吧
作者: xo37    时间: 2024-3-12 11:20
小白子 发表于 2024-3-12 10:27
易代码框增强v1.4.3 - 数据分类,常量条件bug修复

我刚给ide支持库修复了好几个bug呢,你下最新的试吧 ...

感谢 帮助,试了下,倒是不崩了,但读不出 结构体的数据;
用指针,从内存倒是能赌出来了
作者: 小白子    时间: 2024-3-12 14:50
xo37 发表于 2024-3-12 11:20
感谢 帮助,试了下,倒是不崩了,但读不出 结构体的数据;
用指针,从内存倒是能赌出来了 ...

易语言的数组和C的数组不一样,你还是用指针来读更稳妥一点
作者: xo37    时间: 2024-3-12 18:57
小白子 发表于 2024-3-12 14:50
易语言的数组和C的数组不一样,你还是用指针来读更稳妥一点

[C++] 纯文本查看 复制代码
struct Sam
{
        static const unsigned long MAX_CH = 6;
        unsigned short                Status;
        unsigned short        wRIn;
        unsigned short        wROut;
        unsigned short        wRWch;
        long                        nCtrl;
        unsigned long        dwTime;
        float                        fCH[MAX_CH];
};


请教下,10个 上面的结构体 ,已知 其指针,如何取出里面的数据呢


补充内容 (2024-3-12 18:58):
10个上面 结构体的数组,已知 其指针如何取出数据呢,这个数组地址好像不是连续的




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4