本工作室自主开发十多款实用软件,为纯绿色软件,安全可靠,不写注册表,不污染操作系统任何地方,绝不附带任何无关软件,绝不困绑任何插件,支持所有WindowsXP以上系统
论坛的首页 勇芳的软件
教程和帮助
  • VisualFreeBasic编程文档
  • 勇芳系列软件帮助说明教程
  • 留言或交流 登录
    登录
    侧边栏壁纸
    博主头像
    勇芳

    • 累计撰写 330 篇文章
    • 累计收到 0 条评论
    • 首页
    • 栏目
      • 论坛的首页
      • 勇芳的软件
      • 教程和帮助
        • VisualFreeBasic编程文档
        • 勇芳系列软件帮助说明教程
      • 留言或交流
      • 登录
    包含标签 【编程】 的文章
    • VisualFreeBasic和VisualBasic6用户容易踩坑点 2026-1-21
      VisualFreeBasic和VisualBasic6用户容易踩坑点 当年我踩过不少坑,但想不起来了。如果你遇到,请告诉我你的故事,我写到这里来。
      • 2026年-1月-21日
      • 85 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic和VisualBasic6不同点 2026-1-21
      VisualFreeBasic和VisualBasic6不同点 这里说的是 代码 不同,其它不同,比方界面,一看就知道,无需说明。 不同点很多本人想到什么再添加说明 1. COM:VB6支持良好,VFB不支持 VFB 没有原生支持COM,因此使用COM非常麻烦,不是说不能用,只是好麻烦,因此,用到COM,包括 OCX 控件,请使用 VB6,不要用VFB。同时包括 VB6 里的引用,也是 COM 的,VFB 是不支持的,使用不了。 2. 调试代码:VB6 完胜 VFB VB6 边运行边调试,一行一行执行,修改代码立即生效,可以继续执行代码 VFB print 结果,基本上都是依靠编译运行然后查看打印结果,当然可以一行一行调试执行,但每次修改需要重新编译运行,和VB6相差甚远,也无法做到和VB6一样的丝滑。 3. 模块 VB6独立,VFB统一 VB6:每个模块独立,一个窗口也是一个模块,还有类模块,互相独立 VFB:所有模块都属于同一个模块,包括窗口里的代码,可以说只有一个模块。 在VB6里调用窗口里的代码,需要先加载窗口,VFB里是直接调用,不需要窗口。 4. 变量定义 VB6:可以不设置类型 Dim 变量 甚至不用先声明变量 VFB:必须先声明变量,必须设置类型 Dim 变量 as long 5. 全局变量定义 VB6 :Public 变量 as long VFB: Dim Shared 变量名 As Long 6. 局部变量 ’VB6 不管那里定义,后面都有效 Sub Myaaa() Dim a As Long If a = 0 Then Dim b As Long End If Print a,b End Sub 'VFB 每给配对中定义的变量,只存在配对中,超出就释放,就无效 Sub Myaaa() Dim a As Long If a = 0 Then Dim b As Long Print b 'END IF 结束后 b 变量会被释放 End If Print a '这里无法使用B变量 End Sub 7. 变量初始化 'VB6 Dim a As Long a = 100 'VFB Dim a As Long = 100 Dim b(3) As Long ={1,2,3,4} 8. 多变量声明 'VB6 Dim a As Long,b As Long ,c As Long 'VFB Dim As Long a, b, c '还可以初始化 Dim As Long a=1,b=2,c=3 9. 范围块局部变量 VB6不支持,VFB支持 Dim As Integer x = 5, y = 2 Print "x ="; x; ","; "y ="; y Scope Dim x As Integer = 3 Print "x ="; x; ","; "y ="; y Scope Dim y As Integer = 4 Print "x ="; x; ","; "y ="; y End Scope End Scope Print "x ="; x; ","; "y ="; y 10. 变量类型 有符号整数,就是有正负数 有符号整数 8位 16位 32位 64位 32/64自适应 VB6 无 Integer Long 无 无 VFB Byte Short Long LongInt Integer 无符号整数,就是只有正数,没有负数,可表示的数值上限比有符号多一倍 无符号整数 8位 16位 32位 64位 32/64自适应 VB6 Byte 无 无 无 无 VFB UByte UShort ULong ULongInt UInteger 浮点数 浮点数 32位单精度 64位双精度 货币类型 超大浮点数 VB6 Single Double Currency 无 VFB Single Double 无 BigFloat 字符串类型(8位是ANSI 编码,16位是Unicode 编码) 内存结构 :8位 1个英文占1个字节,1个中文占2个字节, 16位不管英文中文,1个字都占2个字节。 字符串 8位变长 8位定长 16位变长 16位定长 VB6 无 无 String String * n VFB String zString * n StringW WString * n 11. 函数返回 VB6支持返回数组,VFB不支持 Function 函数名() As Long 'VB6 ----------- 函数名 = 1 If xxx Then 函数名 = 2 : Exit Function 'VFB ----------- 函数名 = 1 Function = 1 If xxx Then Return 2 End Function 12. 内循环控制 'VB6 ----------- Do Exit Do Loop Do Do Exit Do Loop Exit Do Loop 'VFB ----------- Do Do Exit Do,Do '可以直接退出双循环,或N多循环,还支持 Continue For,For | Continue While,While Loop Continue Do '直接跳转到循环头,继续循环的下一个迭代,还支持 Continue For | Continue While Loop 13. 函数的参数 vb6 Function 函数名(a As Long ,b As String , Optional ByVal b As Integer = 1) As Long 'a b 没写 ByVal或ByRef ,默认ByRef End Function VFB Function 函数名(a As Long ,b As String , b As Integer = 1) As Long 'a b 没写 ByVal或ByRef ,数值默认ByVal ,字符或其它类型默认ByRef End Function 14. 其它函数差异 ASC VB6 asc("111") asc(mid("111",2,1)) VFB asc("111") asc("111",2) CHR VB6 chr(1) & chr(2)... VFB chr(1,2,3.....) InStr VB6instr("abc","a") VFB instr("abc","a") 单个查找是一样的 当遇到需要查找多个文字时,不理解的看FB帮助 VB6 instr("abc","a") instr("abc","b") VFB instr("abc",any "ab") 从尾部开始查找 VB6instr(-1,"abc","a") VFB InStrRev("abc","a") Split VB6 nn()=Split("1,2,3,4",",") VFB 数量= vbSplit("1,2,3,4",",",nn()) Join VB6 Join(nn(),",") VFB YF_Join(nn(),",") Replace VB6 nn=Replace("123","1","a") VFB nn=YF_Replace("123","1","a") Now VB6 Print Now 输出是文本:如 2025-05-18 14:30:00 VFB Print Now 输出是数字:如 45795.82042824074 输出文本用:Format(Now, "yyyy-mm-dd hh:mm:ss") 字符函数 由于VFB有两套字符串,所用到的字符函数也有两套,下面举例几个,以此类推 8位:Asc InStr Lcase Left Mid 16位:AscW InStrW LcaseW LeftW MidW
      • 2026年-1月-21日
      • 107 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic比VisualBasic6新增功能 2026-1-21
      VisualFreeBasic比VisualBasic6新增功能 界面 现代主流编程界面布局 集成函数库、源码库、流程图等 工程 可以同时打开多个工程,工程标签切换 工程里的文件用文件标签切换 窗口设计 属性名称可以中英文切换 点击属性,底部帮助区显示该属性的详细说明 丰富的自带控件,超过50个,后续会增加控件 代码 底部帮助区显示代码的光标所在,是变量、函数、还是什么,提供详细说明 右键点击函数,可以选择跳转到函数代码区。 提供底层模块,有起始模块、入口出口函数、消息循环 指针 多线程 直接写汇编 内存直接读写 位操作 直接使用 系统 API ,和本地函数一样使用。不需要定义。 上百个C语言函数直接使用。 自带几个大型的扩展库 公共代码库,大量函数直接调用 我的代码库,自己写的代码片段,函数等直接调用 VFB群里有好多牛逼的代码库下载,放到我的代码库里使用。持续增加中。 好多原生的函数,都有功能增强,在后续不同点里说明。
      • 2026年-1月-21日
      • 79 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic和VisualBasic6相同点 2026-1-21
      VisualFreeBasic和VisualBasic6相同点 VB6(Visual Basic 6.0)和 VFB(Visual FreeBASIC)虽然属于不同时代的开发工具,但由于 VFB 设计初衷是模仿 VB6,两者在语法、编程模型和开发体验上存在大量相似之处,这使得 VB6 开发者可以快速上手 VFB。以下是它们的主要相同点: 1. 基础语法高度相似 两者均基于 BASIC 语言,核心语法几乎一致: 变量声明:使用Dim关键字 ' VB6 Dim x As Integer Dim y As String ' VFB完全兼容 Dim x As Integer Dim y As String 流程控制语句:If...Then...Else、For...Next、Do...Loop等 ' 条件判断示例 If x > 10 Then MsgBox "大于10" Else MsgBox "小于等于10" End If 字符串处理:Len()、Mid()、Left()、Right()等函数完全相同 2. 可视化开发模式 两者均支持 “所见即所得”(WYSIWYG)的界面设计: 拖放式控件设计:通过工具箱拖拽按钮、文本框、列表框等控件到窗体 属性窗口:通过属性面板设置控件的Name、Caption、Font等属性 事件驱动编程:通过双击控件生成事件处理代码(如Command1_Click()) 3. 核心对象模型相似 窗体和控件:均使用Form作为主窗口,控件命名和用法类似 ' 窗体加载事件 'vb6 Private Sub Form_Load() Text1.Text = "Hello" Command1.Caption = "点击我" End Sub 'vfb Sub Form1_WM_Create(hWndForm As hWnd,UserData As Integer) Text1.Text = "Hello" Command1.Caption = "点击我" End Sub 4. 内置函数兼容性 数学函数:Sqr()、Sin()、Cos()、Abs()等 字符串函数:InStr()、Trim()、UCase()、LCase()等 5. 数据类型基本兼容 数据类型 VB6 VFB 整数 Integer(16 位) Integer(32 位) 长整数 Long(32 位) Long(32 位) 单精度浮点 Single Single 双精度浮点 Double Double 字符串 String String 6. 文件操作语法 传统文件操作:Open、Close、Input、Print语句兼容 ' 写入文件示例 Open "data.txt" For Output As #1 Print #1, "Hello, World!" Close #1 7. 项目结构相似 均以 “窗体(Form)”、“模块(Module)” 组织代码 支持添加资源文件(如图片、图标) 总结 VB6 和 VFB 的相似性使得 VB6 开发者迁移到 VFB 的门槛极低,大多数基础代码可以直接复用。然而,VFB 在保持兼容性的同时,增加了许多现代特性(如完整 OOP 支持、64 位编译、跨平台能力),这为旧项目升级和新项目开发提供了更大的灵活性。
      • 2026年-1月-21日
      • 90 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic和VisualBasic6 功能对照 + 避坑指南 2026-1-21
      VisualFreeBasic和VisualBasic6 功能对照 + 避坑指南 VB6 Visual Basic 6.0 是微软公司于 1998 年推出的可视化 Basic 编程语言,是经典的 Windows 桌面开发工具,也是 Visual Basic 系列的最后一个独立版本。它凭借简单易学的语法和 "所见即所得"(WYSIWYG)的开发环境,成为 20 世纪末至 21 世纪初最流行的软件开发平台之一,广泛用于快速构建中小型桌面应用程序、数据库管理系统和企业级软件。 VFB VisualFreeBasic,它是基于开源 Basic 语言FreeBASIC的可视化开发环境,专为替代 VB6 而设计,支持跨平台开发(Windows、Linux)。VFB 通过图形化界面和拖放式控件设计,让开发者能以类似 VB6 的方式快速构建应用程序,同时弥补了 VB6 的诸多缺陷,如不支持 64 位系统、缺乏现代编程特性等。 核心特点 兼容 VB6 语法 保留了大量 VB6 的经典语法(如Dim声明、MsgBox函数),降低 VB6 开发者的迁移成本,例如: ' VB6风格代码在VFB中依然有效 Dim x As Integerx = 10 MsgBox "x的值是: " & x 支持现代编程范式 扩展了面向对象编程(OOP)特性,如类、继承、多态,同时支持指针、运算符重载等高级功能。 跨平台开发能力 可生成 Windows、Linux 等多平台的原生应用,无需修改代码,例如: ' 跨平台文件操作示例 #If __FB_WIN32__ Then Print "在Windows上运行" #ElseIf __FB_LINUX__ Then Print "在Linux上运行" #End If 可视化设计器 提供类似 VB6 的窗体设计器,支持拖放控件(按钮、文本框等),并自动生成代码。 性能提升 基于 FreeBASIC 编译器,生成的程序执行效率更高,且原生支持 64 位系统。 与 VB6 的关键差异 特性 VB6 VFB 平台支持 仅限 32 位 Windows Windows、Linux(32/64 位) 编程范式 部分 OOP 特性(类模块) 完整 OOP 支持(类、继承、接口) IDE 集成度 独立 IDE 独立 IDE + 大量的库文件 + 源码 数据库访问 ADO(需 COM 注册) 支持 MySql、SQLite 等现代数据库 部署复杂度 需注册 COM 组件,依赖 VB6 运行库 单文件可执行,无需额外依赖 开源与社区支持 闭源,官方停止更新 开源,社区活跃维护 适用场景 VB6 项目迁移:将旧 VB6 应用升级到跨平台版本。 快速原型开发:利用可视化界面和熟悉的语法快速构建应用。 教育领域:作为入门级编程语言,比 VB6 更适合教学现代编程概念。
      • 2026年-1月-21日
      • 179 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic第三方代码库_进程通信之内存共享 2026-1-21
      VisualFreeBasic第三方代码库_进程通信之内存共享 实现不同软件,不同进程共享内存,好比多线程使用全局变量一样道理。 已经增加读写锁,不会因为同时读写发生混乱,也增加了边界检查,避免越界发生软件奔溃 Dim Shared a As 进程通信之内存共享类 = "名字" 只要相同的名字,那么这里的内存就共享了,不管在什么进程中。(注意:当你电脑有多个用户登入,那么跨用户共享,需要在名字前面添加特殊文字,自己查相关资料。) 默认内存大小为 1024 字节,可以自己定义大小 Dim Shared a As 进程通信之内存共享类 = Type("名字",100) 使用共享内存就这样写 a.tLong(0) = 100 Print a.tLong(0) 当然还有其它类型 Declare Property tLong(位置 As ULong) As Long '返回属性 ,“位置”就是在共享内存中的相对位置,从0开始,单位是字节。 Declare Property tLong(位置 As ULong, 值 As Long) '给属性赋值 Declare Property tULong(位置 As ULong) As ULong '返回属性 ,“位置”就是在共享内存中的相对位置,从0开始,单位是字节。 Declare Property tULong(位置 As ULong, 值 As ULong) '给属性赋值 Declare Property tSingle(位置 As ULong) As Single '返回属性 ,“位置”就是在共享内存中的相对位置,从0开始,单位是字节。 Declare Property tSingle(位置 As ULong, 值 As Single) '给属性赋值 Declare Property tDouble(位置 As ULong) As Double '返回属性 ,“位置”就是在共享内存中的相对位置,从0开始,单位是字节。 Declare Property tDouble(位置 As ULong, 值 As Double) '给属性赋值 Declare Property tLongInt(位置 As ULong) As LongInt '返回属性 ,“位置”就是在共享内存中的相对位置,从0开始,单位是字节。 Declare Property tLongInt(位置 As ULong, 值 As LongInt) '给属性赋值 Declare Property tULongInt(位置 As ULong) As ULongInt '返回属性 ,“位置”就是在共享内存中的相对位置,从0开始,单位是字节。 Declare Property tULongInt(位置 As ULong, 值 As ULongInt) '给属性赋值 Declare Property tString(位置 As ULong) As String '返回属性,超过“尺寸”字符会被截断,遇到0也截断,不支持带0 的字符,自己控制字符长度,避免覆盖后面数据 Declare Property tString(位置 As ULong, 值 As String) '给属性赋值 Declare Property tWString(位置 As ULong) As StringW '返回属性,超过“尺寸”字符会被截断,遇到0也截断,不支持带0 的字符,自己控制字符长度(1字符占2字节),避免覆盖后面数据 Declare Property tWString(位置 As ULong, 值 As Wstring) '给属性赋值 这个位置,就是字节为单位,比方 long 类型占4个字节,你要使用 2个 Long 那么 a.tLong(0) = 100 ‘第1个 a.tLong(4) = 100 ‘第2个 因此,共享内存中需要保存什么数据,需要自己计算好位置进行读写。
      • 2026年-1月-21日
      • 85 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic第三方代码库_匿名管道父进程类 2026-1-21
      VisualFreeBasic第三方代码库_匿名管道父进程类 匿名管道父进程类
      • 2026年-1月-21日
      • 45 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic第三方代码库_匿名管道子进程类 2026-1-21
      VisualFreeBasic第三方代码库_匿名管道子进程类 匿名管道子进程类
      • 2026年-1月-21日
      • 60 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic第三方代码库_多线程之生产消费模型 2026-1-21
      VisualFreeBasic第三方代码库_多线程之生产消费模型 多线程编程模型:生产者-消费者 模型 这是多线程编程中最经典、最常用的模型之一, 核心价值是解耦生产(数据生成 / 任务创建)和消费(数据处理 / 任务执行)的逻辑, 缓冲两者的速度差异,提升系统吞吐量和稳定性。 使用方法:--------- 1:定义全局变量 Dim shared 工作 As 生产消费模型 2:设置工作处理函数 工作.设置任务函数(@任务执行) 3:任务创建 工作.任务创建(100) 4:任务函数 Sub 任务执行(数据 As Any Ptr) '多线程执行中 Print "任务执行",数据 Sleep 100 End Sub 实际使用中,数据是根据自己需要定义一个类 Type 自己的数据类 aa As Long bb As Long End Type Dim 工作数据 As 自己的数据类 Ptr = new 自己的数据类 '创建的数据变量 工作数据->aa=100 工作.任务创建(工作数据) Sub 任务执行(数据 As 自己的数据类 Ptr ) '多线程执行中 Print "任务执行",数据.aa ,数据.bb Delete 数据 '用后需要销毁 End Sub '注意:假如 工作 变量被销毁,那么多线程完成工作后立即就退出,后续没完成的工作将会丢弃 '' 假如任务创建速度快于任务执行,数据缓存区就满,超过100个后就强制任务创建等待,如果是界面线程就表现软件无响应。
      • 2026年-1月-21日
      • 65 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • VisualFreeBasic第三方代码库_asmjit汇编引擎 2026-1-21
      VisualFreeBasic第三方代码库_asmjit汇编引擎 一、AsmJit 是什么? AsmJit 是一个轻量级、跨平台的开源汇编器库(C++ 编写),核心作用是让你在程序运行时(动态)生成机器码,并直接执行这些机器码。简单来说: 它不是传统的 “静态汇编器”(比如 NASM/GAS),而是 “运行时汇编器” 你可以用 C++ 代码 “写汇编逻辑”,AsmJit 会把它转换成对应 CPU 架构的机器码(x86/x64/ARM 等) 生成的机器码可以直接在内存中执行,无需编译 / 链接步骤 二、为什么要用 AsmJit? 核心场景是需要极致性能,且无法通过静态编译 / 编译器优化实现的场景: 即时编译(JIT):比如脚本语言解释器(Lua/JavaScript)、游戏引擎的脚本虚拟机、数据库的 SQL 执行引擎,用 AsmJit 把字节码动态编译成机器码,大幅提升执行速度。 高性能计算:科学计算、图形渲染中,针对特定数据 / 硬件动态生成最优汇编指令(比如手动优化 SIMD 指令)。 动态代码生成:比如调试器、沙箱、加密 / 解密工具,需要动态生成临时执行的代码。 替代手写机器码:手写机器码容易出错且不跨平台,AsmJit 提供了类型安全的 C++ 接口,屏蔽了不同架构的机器码差异。 三、核心特点 跨平台 / 跨架构:支持 x86/x64、ARM/ARM64、RISCV 等主流架构,Windows/macOS/Linux 等系统。 轻量级:无外部依赖,编译后体积小,适合嵌入到其他项目中。 类型安全:用 C++ 类 / 函数封装汇编指令,避免手写机器码的内存越界、指令错误等问题。 即时执行:生成的机器码可直接通过函数指针调用,无需写入文件再加载。 低开销:生成机器码的过程非常快,运行时开销几乎可以忽略。 给它 汇编代码,返回机器码,可以直接注入内存直接执行。 Dim 机器码32位 As String = asmjit汇编("汇编代码") Dim 机器码64位 As String = asmjit汇编("汇编代码",True)
      • 2026年-1月-21日
      • 76 阅读
      • 0 评论
      VisualFreeBasic编程文档
    • 7
    • 8
    • 9
    • 10
    • 11
    博主栏壁纸
    博主头像 勇芳

    330 文章数
    0 评论量
    • QQ游戏大厅多开版_旧版_2012到2025版
    • 使用Sandboxie沙盒多开QQ游戏大厅
    • Sandboxie沙盒(隔离软件)
    人生倒计时
    最新评论
    链接
    • 公益·寻亲,让爱回家
    • Visual Basic6 语言和控件手册
    • CWindow类库帮助FreeBasic版
    • FreeBASIC 帮助文档中文版
    • Windows GDI 编程手册
    • Windows GDI+ 编程手册
    • SQLite3数据库API手册
    • WebBrowser控件编程手册
    • Win32API参考手册
    • Windows 编程宝典
    • WinHttp参考资料
    • WMI编程手册
    • VisualFreeBasic编程文档
    舔狗日记
    载入天数...载入时分秒...

    © 2025 勇芳软件工作室 版权所有

    ICP备案图标 浙ICP备11006222号-1 | 公安备案图标 33100402331731号

    powered by emlog 浙ICP备11006222号-1