开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 534|回复: 9
收起左侧

[求助] C++的回调函数,麻烦高手帮忙看下

[复制链接]
结帖率:100% (7/7)
发表于 2024-3-11 20:31:39 | 显示全部楼层 |阅读模式   山东省济南市
[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):
没有易语言 源码实例,不评最佳答案……
结帖率:100% (4/4)

签到天数: 19 天

发表于 2024-3-11 20:52:15 | 显示全部楼层   广东省东莞市



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

如果不想用插件,那就用指针。在回调再通过指针复制数据到易语言的数据类型就可以解决

评分

参与人数 1好评 +1 精币 +2 收起 理由
xo37 + 1 + 2 感谢,我去学习下

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 1 天

发表于 2024-3-11 21:30:09 | 显示全部楼层   黑龙江省绥化市
[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计数);
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 17 天

 楼主| 发表于 2024-3-12 06:53:43 | 显示全部楼层   山东省济南市
xz0455 发表于 2024-3-11 21:30
[mw_shl_code=javascript,true]、

结构Sam

感谢回复,但这个 结构体的 数据理性,还是能看懂的;
看不懂的是怎么通过 UTM_API这个注册 回调函数……  不是说了吗,写个易语言调用例子;
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 17 天

 楼主| 发表于 2024-3-12 07:58:11 | 显示全部楼层   山东省济南市
小白子 发表于 2024-3-11 20:52
参数限制的问题,安装易语言助手然后用我这个插件可以解决,插件下载地址:突破子程序指针限制,回调传 ...

大神的插件,只适配助手,没有适配视觉库;
在助手下,启用插件,打开调用dll 的源码就崩了 —— 这个源码,是准备做成ec模块的;
在视觉库下,打开同一份源码,是没任何问题的
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 17 天

 楼主| 发表于 2024-3-12 08:06:06 | 显示全部楼层   山东省济南市
xz0455 发表于 2024-3-11 21:30
[mw_shl_code=javascript,true]、

结构Sam

另外,unsigned long,并不是无符号长整数,而是 无符号整数;
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 19 天

发表于 2024-3-12 10:27:00 | 显示全部楼层   广东省东莞市
xo37 发表于 2024-3-12 07:58
大神的插件,只适配助手,没有适配视觉库;
在助手下,启用插件,打开调用dll 的源码就崩了 —— 这个源 ...

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

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

使用道具 举报

结帖率:100% (7/7)

签到天数: 17 天

 楼主| 发表于 2024-3-12 11:20:21 | 显示全部楼层   山东省济南市
小白子 发表于 2024-3-12 10:27
易代码框增强v1.4.3 - 数据分类,常量条件bug修复

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

感谢 帮助,试了下,倒是不崩了,但读不出 结构体的数据;
用指针,从内存倒是能赌出来了
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 19 天

发表于 2024-3-12 14:50:59 | 显示全部楼层   广东省东莞市
xo37 发表于 2024-3-12 11:20
感谢 帮助,试了下,倒是不崩了,但读不出 结构体的数据;
用指针,从内存倒是能赌出来了 ...

易语言的数组和C的数组不一样,你还是用指针来读更稳妥一点
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 17 天

 楼主| 发表于 2024-3-12 18:57:21 | 显示全部楼层   山东省济南市
小白子 发表于 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个上面 结构体的数组,已知 其指针如何取出数据呢,这个数组地址好像不是连续的
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表