- 博客(29)
- 资源 (3)
- 收藏
- 关注
原创 利用FreeBasic编写的PowerFreeBasic,不仅兼容PowerBasic书写语法,还加入部分C元素,提升代码的可视性。
利用FreeBasic编写的PowerFreeBasic,不仅兼容PowerBasic书写语法,还加入部分C元素,提升代码的可视性。
2023-10-06 23:12:59
171
原创 用FreeBasic编写的PowerBasic32/64位版本
经过一段时间的摸索研究,最终用FreeBasic开发出PowerBasic风格的编程样式,相识度可达90%你不仅可以使用全部FB中的功能,而且还可以用PB习惯的编程方式书写代码。简单代码过程,实现一个hello Word!
2023-02-07 20:57:02
371
原创 FreeBasic实现内存中创建对话框样式窗口
上面演示了两种非模式对话框窗口的不同创建方式。第一种默认创建不能通过双击鼠标获得最大化窗口,第二种方式可以。二、利用CreateWindowEx直接创建。根据自定义内存对话框模板创建窗口。
2023-02-05 16:58:22
267
原创 FreeBasic编写的PowerBasic内置网络函数
利用freebasic编写了一遍powerbasic中内置的网络函数,为的是保留pb编程风格。
2023-01-16 15:56:18
345
原创 FreeBasic编程-给WS_POPUP自绘窗口添加标题菜单
在自绘WS_POPUP风格样式的平面窗口时,由于不需要系统默认的标题按钮,从而导致窗口默认标题菜单也无法显示(当单击左上角图标时)。所以我们需要手动为其添加上去。
2022-12-09 21:53:05
253
原创 一个利用FreeBasic编写的库,实现PowerBasic编程风格
本人由于是个老PowerBasic爱好者,随着64位系统变得越来越普及,32位的PB编程就显得越来越力不从心了。至此选择了FB作为转型的Basic语言,主要考虑是不但其支持32位及64位编程,更重要的是没有任何限制而且长期免费使用。但是在使用的过程中,由于习惯了PB编程模式及界面,所以就萌生了个想法,在FB代码编辑中实现PB风格的代码编辑风格。所以想到了就开始着手编写函数库(PBSTYLE.BI)。经过两天的尝试最终完成了PB编程代码风格的实现,并利用这个样式库,实现了第一个窗口程序,并成功转发系统
2022-11-24 00:21:44
774
原创 FreeBasic编程:无需子类化的标准控件绘制方法1
今天在这里分别介绍Static及Edit这两个控件的自绘方法,在PB中为LABEL及TEXTBOX。在窗体程序中通过CreateWindowEx函数添加Static静态文本控件及Edit编辑窗口控件后,主窗口将会收到WM_CTLCOLORSTATIC及WM_CTLCOLOREDIT这两个消息。我们在绘制自定义的控件效果时,就可以利用这两个消息下编写自己的代码。
2022-11-18 22:03:26
475
原创 再谈FreeBasic下通过WM_DRAWITEM消息实现按钮自绘
由于网上对于FreeBaisc编程实现控件自绘的文章较少,所以本人在此分享个人FB编程经验。 控件的自绘除了自行处理WM_NOTIFY消息下的NM_CUSTOMDRAW状态,还可以在WM_DRAWITEM消息下实现自绘功能。主要区别在于NM_CUSTOMDRAW具有鼠标热点跟踪事件,而WM_DRAWITEM消息需要自行处理鼠标的移入移除效果。
2022-11-16 15:34:23
319
原创 FreeBasic编程NM_CUSTOMDRAW实现按钮自绘仿MT4风格
FreeBasic编程NM_CUSTOMDRAW实现按钮自绘仿MT4风格
2022-11-13 23:25:09
368
原创 关于Metatrader4服务器配置文件SRV的结构解析
MetaTrader客户端terminal在启动时,会读取位于config下的服务器配置文件.srv,通过修改其服务器地址值,可以在本地建立自定义服务器
2022-11-10 11:48:41
550
原创 FreeBasic增强版任意变量数据转二进制
FreeBasic内置的BIN()函数,只支持系统内置变量转换二进制,如果打算将一个自定义的结构体变量输出为二进制格式,则无法实现。为此为实现这个需求,本人编写了一个任意变量类型转二进制的函数。
2022-10-26 02:23:55
165
原创 PowerBasic与C做长整形数据参数传递时,堆栈的处理技巧。
函数的参数是通过堆栈来处理的,32位系统一般是在EBP寄存器做增减的。长整形的偏移量为8个字节。如果汇编去访问函数参数变量则可以使用dword ptr [ebp+8]、dword ptr [ebp+16]这样的形式来访问。这里就不探讨汇编的了。
2022-10-22 16:11:01
170
原创 用PowerBasic编写的通用二进制算法
此算法原理将指定地址数据,按单字节读取并转换为其对应二进制,最终合并而成。针对任意类型数据,甚至是结构体。
2022-10-16 21:37:46
109
原创 PowerBasic中隐藏的小秘密
它的作用就是指定位类型为有符号类型,好了下面我们就可以定义一个新的数据类型SBYTE。而在PB 32位编译器下,只约定了BYTE一种单字节数据类型取值范围 0 ~ 255。只能支持一般的数学运算(加减乘除),不支持位移及其他内置函数。PB的这个位定义符只能支持BYTE、WORD及DWORD类型,最大支持32位。在PB的帮助文档中我们发现有一个隐藏的SBIT位定义符,不留意很难查到。由测试结果看,新的数据类型已经可以存储有符号byte字型了。那么如何为PB定义一个SBYTE的数据类型呢?
2022-10-16 14:03:05
115
原创 PowerBasic下64位无符号整形操作随笔
PowerBasic为32位编译器,没有提供64位无符号长整形的数据类型,但是在日常编程中对于64位无符号长整形数据的操作越来越普遍。既然有了无符号长整型数据类型,那么需要输出显示结果的话,还需要再添加一个宏。将高低位合并后的结果输出显示。如果使用PB的QUAD数据类型(有符号长整型64位),则得到的是一个大的负数值。而不是我们期待的值。所以才有了在32位编译器下,对64位数据操作的研究。首先定义一个新的数据类型,长度8字节,64位。然后再定义三个宏操作。
2022-10-10 23:15:24
240
原创 FreeBasic程序入口函数定义
以前习惯了PowerBasic编程,可惜的是PB没有64位编译器,只有32位编译器的版本。PB在新建文档后程序将PBWIN()作为默认入口,你可以在其内编写自己的代码,而在FreeBasic下则需要自己定义入口函数。如果不希望在程序调试中显示dos调试窗口console模式,则可以通过命令行指定为gui模式,这样在运行自己编写的程序时就不会进入console调试模式了。cmd: fbc32.exe -s gui 'win图形窗口模式。指定main()作为程序启动默认的入口点。
2022-10-09 23:00:57
458
原创 利用PowerBasic编写两个整数型进制相互转换的函数
闲暇无事利用PB按机制转换规则,编写了两个整数类型相互转换的自定义函数,当然在日常编程中很少使用到,因为编译器会自动帮助我们完成转换工作。自己编程实现的目的主要是加深对于进制间转换的理解。
2022-10-06 21:33:56
203
原创 为FreeBasic添加一个二进制转十进制的函数
FreeBasic内部提供了一个bin的内部函数,可以将十进制转换为二进制的string格式。通过数组指针的形式即可读取bit的状态值。其中的位状态值可以通过s[i]取得,但是这个值是ascii码,还需用chr(s[i])的形式转换一下。但是在帮助文档里却没有查到有关将二进制数转换为十进制的内置函数,这有点可惜了。上面可以看到可以返回正确十进制的值,与bin函数计算得到的二进制值相匹配。即可输出字符串:"100001001001101"的二进制格式。所以就自己动手写了一个。主程序里测试下计算结果。
2022-10-05 00:47:26
142
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人