开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 14092|回复: 29
收起左侧

[火山PC源码] 火山视窗开发你最想知道的秘密 线程池 C++互通 64位内联汇编

[复制链接]

发表于 2022-2-23 14:06:05 | 显示全部楼层 |阅读模式   广东省揭阳市
本帖最后由 meng9934 于 2022-2-23 14:12 编辑

授人以鱼不如授人以渔

一,如何调用C++开发文档?
二,火山变量到和C++变量如何转换?
三,如何做到32位与64位通用?变整数,c++中又用什么表示?
四,什么是嵌入式方法,如何使用嵌入式方法。
五,重磅,64位如何写内联汇编?
六, 什么是结构体,如何取结构体指针?结构体中的文本型如何表示?
七,线程中如何用模板做为参数传参。
八,线程中,整数型、文本型、结构体,如何作为参数传入?



一,如何调用C++开发文档?


先记住这几个。其他参考官方文档。


1.1,@begin @end 嵌入C++代码 。


1.2,@sn<current_class>:所处类名。


1.3,<include></include>:声明头。


1.4,引入外部c++文件,(图1-1)




1.5,将c++方法前置内联声明。(图1-2)







二,火山变量到和C++变量如何转换?


2.1,火山到C内部,C内部到火山变量如何互交。例子如下:


2.11,火山整数->c++:int,@  int i=(int)@<火山整数>,需不需要强制转视情况而定。


2.12,c++:int ->火山整数,@  @<火山整数>=(@dt<整数>)i。


三,如何做到32位与64位通用?变整数,c++中又用什么表示?


下面只对整数型进行说明,其他类型参考整数型转换。
        
3.1,火山中:把整数类型全部改为变整数。传入C++。


3.2,C++中:用long long。


例如:
        @  long long i=(long long)@<火山变整数>;
        @  @<火山变整数>=(@dt<变整数>)i;


3.3,添加预处理代码。让编译器32位、64位分别走对应的路。


#ifdef _WIN32
#ifdef _WIN64
//64位代码放在这里
#endif
//32位代码放在这里
#endif


(图2-1)







四,什么是嵌入式方法,如何使用嵌入式方法直接调用C++写的类方法。


嵌入式方法可以理解为对函数的引用。


4.1,定义类变量。(图4-1)





4.2,取类变量,然后就可以直接调用c++写的类方法。(图4-2)







五,重磅,64位如何写内联汇编?


这个应该算是大部分人改写其他语言到火山碰到的棘手问题吧。


5.1,新建在c++工程新建ASM文件(新建文件,改后缀为.asm)。开始写内联汇编代码。.code开始,end结束。(图5-1)





5.2,右键asm文档,配置属性-常规-项类型为:自定义生成工具。(图5-2)(图5-3)


   



5.3,配置属性-自定义生成工具,配置编译:命令行,asm:ml64 /Fo $(IntDir)%(fileName).obj /c %(fileName).asm;输出:$(IntDir)%(fileName).obj;%(Outputs)(图5-4)





5.4,右键ASM文件。选择(ctrl+F7)编译。这样我们就等到了obj二进制目标文件。


5.5,打开VS控制台或VS工具菜单里面的程序包管理器控制台。cd切换到obj目录下,lib (fileName).obj,生成静态支持库lib。(图5-5)




5.6,c文档中引入调用汇编方法。(图5-6)





六, 什么是结构体,如何取结构体指针?结构体中的文本型如何表示?


6.1,新建类,定义为结构体,类属性:@视窗.结构类。


6.2,通过GetStruct取得类指针。


(图6-1)





七,线程中如何用模板做为参数传参。


7.1,线程传参2种方式,一种是嵌入C代码取指针:@ @<task>=(@dt<变整数>)@<多整数线程>;另一种可以用模板作为传参参数。(图7-1)






八,线程中,整数型、文本型、结构体,如何作为参数传入?


8.1,提供线程池使用实例源码供大家参考。源码在下面下载。(图8-1)






火山PC交流群:705880235  PS:99.9%的时间不在,剩下的0.1在搬砖。

来自群组: 热心网友

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 3好评 +3 精币 +12 收起 理由
易语言资源网 + 1 + 5 支持开源~!感谢分享
fjgh + 1 + 2 感谢分享,很给力!~
冰点 + 1 + 5 感谢分享,很给力!~

查看全部评分

签到天数: 2 天

 楼主| 发表于 2022-2-26 01:10:51 | 显示全部楼层   广东省揭阳市
改进线程池创建方式。延时测试取间隔。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 19 天

发表于 2024-9-9 12:48:03 | 显示全部楼层   山东省济南市
        支持开源~!感谢分享
回复 支持 反对

使用道具 举报

发表于 2024-8-22 22:31:01 | 显示全部楼层   江苏省无锡市

谢谢楼主分享!!!
好人一生平安!!!
回复 支持 反对

使用道具 举报

结帖率:0% (0/3)

签到天数: 14 天

发表于 2023-7-2 04:47:46 | 显示全部楼层   安徽省芜湖市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

签到天数: 21 天

发表于 2023-5-31 19:43:10 | 显示全部楼层   黑龙江省哈尔滨市
谢谢楼主分享!
回复 支持 反对

使用道具 举报

签到天数: 21 天

发表于 2023-5-28 19:34:35 | 显示全部楼层   黑龙江省哈尔滨市

谢谢楼主分享!!!
好人一生平安!!!
回复 支持 反对

使用道具 举报

结帖率:38% (9/24)

签到天数: 17 天

发表于 2023-5-8 23:29:50 | 显示全部楼层   四川省绵阳市
C++反而能看懂,十多年易玩家,看火山却一脸懵逼!太尬了
回复 支持 1 反对 0

使用道具 举报

发表于 2022-11-11 20:39:21 | 显示全部楼层   陕西省榆林市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

发表于 2022-11-11 20:39:00 | 显示全部楼层   陕西省榆林市
        支持开源~!感谢分享
回复 支持 反对

使用道具 举报

发表于 2022-11-11 20:36:59 | 显示全部楼层   陕西省榆林市
        支持开源~!感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

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

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

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