虽然 VB
发展到 6.0
版获得了前所未有的成功,但是至今令人疑惑的是,不知出于何种原因官方突然掉转了方向抛弃了它。
因此 VB6
也就成为了历史上经典好用、有口皆碑却又屡被今人诟病的这样一个极具反差效果的神奇存在。
但是更神奇的是,本应作为博物馆藏的它却仍然活在当下,成了名副其实的活化石。
于是随着时间的推移,今人对于 VB
的看法自然而然地形成了两大派别,就像锅里的红豆和绿豆会神奇地自动分开一样,站队极其明显。
红豆派力挺 VB
,他们的理由是,不管怎么样,至少官方仍旧吃着后悔药,给予暗中支持,就算是 Windows 11
也仍默默支持 VB
程序。
绿豆派则对此嗤之以鼻,什么不支持 64 位程序啦,什么不支持指针啦,什么不支持多线程啦,总之横挑鼻子竖挑眼,不是自个的孩子怎么也看着不顺眼。
我使用 VB
也有十数个年头了,是一只半路出家的野生程序猿,得益于 VB
,我勉强算是个红豆派。
对于绿豆派的言行,我并没有想如何据理力争,原因很简单,作为编程界的元老 VB
的确有不少“缺陷”。
如此这般我只能将想法默默埋在心里,VB
是个好东西,只是你们不懂罢了!
直到有那么一天,我偶然发现这世上居然还有一款开源、免费、支持64位并且可跨平台的 BASIC
编译器:FreeBASIC
!
FreeBASIC
也是 BASIC
?
在电脑还未特别普及的年代,曾经有众多冠以 BASIC
字眼的编程语言,它们大多数都是生活在 DOS
时代,而 VB
只是其中一种,只是后来搭上了 Windows
的快车。
那么现在我们说的这个 FreeBASIC
是否也是它们众多兄弟姐妹中的一员呢?
严格来说不算是,单纯来讲这个 FreeBASIC
只是一个自托管的编译器,简单来说,它支持 BASIC
语法,却完全支持 C
库和部分 C++
库的使用。
从概念上讲,它和 GCC
之类是同一种东西,用来编译程序的。
而 FreeBASIC
项目则是一套不仅限于编译器的跨平台的开发工具,和 BASIC
沾上边的是其语法与微软的 QuickBASIC
兼容。
也就是说,如果你熟悉 VB
语法,那么上手 FreeBASIC
理论上也就很容易了。
除此之外,我需要向小伙伴们介绍一个好东西,可以让熟悉 VB
语法的你更好地在 Windows
下撸代码:WinFBE
。
啥是 WinFBE
?
起初我偶然间发现 FreeBASIC
正是源自 WinFBE
,那么这又是个啥呢?
其实它是在 Windows
上的 FreeBASIC
编辑器,俗称 IDE
,我们撸代码的地方。
简言之,就是我们先在 WinFBE
上写代码,然后再用 FreeBASIC
编译成可执行程序。
有几个简称我们有必要先来罗列一下,好避免一会儿看不懂而头晕。
FBC
-FreeBASIC
编译器(类似于GCC
)FBE
- 代码编辑器 (全套IDE
编程环境)FBX
- 专为FreeBASIC
打造的Windows
框架(类似于.Net
)
WinFBE
特性:
- 开启
Unicode
支持,中文不再乱码。 - 支持
32
位和64
位版本。 - 高
DPI
可感知任何显示器分辨率。 - 语言本地化,基于
English.lang
文件轻松创建语言文件。 - 本地化支持 11 种语言:
- 英语、法语、西班牙语、德语、捷克语、意大利语、中文、俄语、乌克兰语、葡萄牙语、波兰语
- 基于工程或非工程的编辑。
- 用于
GUI
应用程序开发的内置可视化设计器。 - 轻松集成基于控制台或
GUI
的代码。 - 增量编译定义为“模块”的代码。
- 只需指定哪个源代码文件是资源即可轻松包含
Windows
资源文件。 FreeBasic
编译器(32
位和64
位)的无缝集成。- 代码提示弹出窗口和自动完成。
的确不错哈,不过有一点我感觉挺奇怪的,制作这个 WinFBE
最多使用的语言居然是 HTML
,占比高达 74.3%
!
用 C++
之类的实现可以理解,但这个 HTML
是用来干啥的呢,有点不可思议哈!
此外需要注意一点,WinFBE
并不支持 Windows XP
,因为源代码中使用了许多较新的 API
。
接下来我们就拿 WinFBE
来体验一下 FreeBASIC
到底是个什么样子吧!
下载 WinFBE
从项目官网上下载 WinFBE
最新安装包,为了省事,我直接下载 winfbe_suite_setup.exe
。
当然,我们如果下载那个 WinFBE_Suite.zip
也是可以的,直接解压缩后就能用。
从它们的名字上我们也能看出,suite
是指套装,就是打包好的整套程序。
官方已经帮我们将所有需要的组件都打包在里面了,包括 FreeBASIC
编译器、示例程序、Windows
框架以及编辑环境等等。
winfbe_suite_setup.exe(44.52M)
下载链接:https://pan.baidu.com/s/1RcBsjlwPusbC29d-2w0F3w
提取码:
★扫码关注公众号, 发送【000937】获取阅读密码
安装 WinFBE
为了避免出现一些不可描述的问题,我们直接使用 winfbe_suite_setup.exe
来安装吧!
很简单,基本上一路耐可斯特。
安装好后,不管你选择的是 32 位版本还是 64 位版本来启动,第一次打开它应该是这个样子的。
怎么是英文界面?
别慌,有办法搞成中文的哦!
按图示,点击顶部菜单 Options
,选择 Environment Options...
。
接着在出现的窗口左侧选择 Localization
,在右侧点击 Select
按钮。
按以下路径找到中文语言包 chinese.lang
文件。
C:\WinFBE_Suite\Languages
点击 OK
按钮后,提示重启程序后生效。
再次打开 WinFBE
,界面瞬间顺眼多了!
怎么用 WinFBE
?
界面改成中文了,接下来就可以写代码了吧?
别急,我们还需要再做一步动作才行!
点击顶部菜单 选项
,选择 环境选项...
。
在出现的窗口左侧点选 编译设置
,在右侧填写好 FBC
编译器的位置,32位和64位都要写好。
如果你是默认安装的话,那么它的位置应该是在 C:\WinFBE_Suite\FreeBASIC-1.07.2-gcc-5.2
。
我们设定好了 FBC
编译器,接下来写好代码就可以直接编译运行了。
OK,我来写几行代码简单测试一下吧!
WinFBE
是支持单文件编译的,也就是说,我们不用大张旗鼓非得先建个项目才行。
因此我们可以 new 一个文件,取个文件名叫 *.bas
即可,代码照抄下面。
#define _WIN32_WINNT &h0602
# INCLUDE ONCE "Afx\CWindow.inc"
Using Afx
Dim a As String
a="Welcome to Sysadm.cc!!"
MessageBox 0, a, "", MB_OK
代码写好后,我们点击工具栏的 编译并运行
按钮。
如果不出意外的话,我们就会看到正常的程序输出。
只要经过正常编译没有任何问题,那么在源代码目录中就会生成 exe
可执行文件,以后直接拿来用就行了,无需外带依赖库或点Net库啥的,非常方便。
从前面的测试代码中,我们可以看到程序引用了 Afx\CWindow.inc
这个 Windows
下的库文件。
这个库正是由 WinFBX
这个专为 FreeBASIC
打造的 Windows
框架,你可以把它理解为类似 .Net
就行了,差不多的意思。
好了,我们再来看看它带有的示例程序吧!
主程序目录中的 Examples
目录含有大量的示例程序,我们可以参考学习。
在 Examples
目录中还有作为项目的示例程序,就放在了 Sample_Projects
子目录中。
我找了两个例子给小伙伴们演示一下。
其一是 TaskDisalog
,这个是演示对话框的程序,前面的测试代码也是我参考了这个写的。
其二是电子琴程序 FBPiano
,可见 FreeBASIC
能写很多复杂的程序。
的确很强大是不是,不过程序好像没说支持中文吧?
哎,其实它是支持的,只不过要注意一下是不是 UTF
编码,瞧下面!
这样一来就可以保证中文不会乱码了!
嗯,可能有的小伙伴会突然想起来,不是说好了可以支持 64 位程序的吗?
是的,FreeBASIC
完全可以玩 64 位程序,只要我们在 WinFBE
中选择相应的模式就行了。
就像下图那样,和玩一样,随意切换!
还有国产 WinFBE
?
这个 WinFBE
其实是一帮老外搞出来的,为的就是方便大家伙高效利用 FreeBASIC
。
真的方便了吗?
的确方便好用,可惜毕竟是老外搞出来的,只是支持中文还有使用方式啥的好像都不怎么符合中国人品味习惯,因此终于有国内大神蚌埠住了!
就在此种背景之下,我们姑且称之为国产 WinFBE
的 VisualFreeBasic
横空出世!
这个 VFB
就是在 WinFBE
基础上二次创作,为的就是让国人更方便灵活地开发程序之用,完全免费,用的人还真不少。
话说回来,大家千万别误会哈,不是说你在 Windows
上用 FreeBASIC
开发程序就得用这个 VFB
,实际上你完全可以直接使用 WinFBE
的,没有任何问题,只是 VFB
可能加入一些更加本地化的内容,其中的示例程序也中文化了,更方便我们参考学习。
我就简单试用了一下,还不是特别熟悉,为了避免广告嫌疑也就不过多做介绍了,有兴趣的小伙伴可以自行研究。
在 Ubuntu
上玩 FreeBASIC
前面说的 WinFBE
都是在 Windows
上玩的,它特意强调了 Windows
,那么我们自然也应该会猜到,FreeBASIC
实际上也完全可以在 Linux
上玩得转。
没错,FreeBASIC
它居然是跨平台的!
这就比较牛了,因此我就进一步研究了一下 FBC
在 Linux
下的玩法。
以下就拿大家比较常用的 Ubuntu
来测试吧!
下载 Ubuntu
版本的 FreeBASIC
编译器
FreeBASIC-1.09.0-ubuntu-20.04-x86_64.tar.gz(6.53M)
下载链接:https://pan.baidu.com/s/1PvRnHrSavGpRCX0kegUx3w
提取码:
★扫码关注公众号, 发送【000937】获取阅读密码
安装所需要组件
apt-get install gcc
apt-get install libc6-dev
apt-get install ncurses-dev
/* X11非终端显示情况下需要安装以下几项支持 */
apt-get install libx11-dev
apt-get install libxext-dev
apt-get install libxpm-dev
apt-get install libxrandr-dev
apt-get install libxrender-dev
安装 FBC
/* 解压缩安装包 */
sudo tar zxvf FreeBASIC-1.09.0-ubuntu-20.04-x86_64.tar.gz
/* 切换到安装目录 */
cd FreeBASIC-1.09.0-ubuntu-20.04-x86_64
/* 执行安装程序,默认安装路径为 /usr/local */
./install.sh -i [安装路径]
新建一个测试文件 test.bas
打开你喜欢的文本编辑器,输入以下内容并保存为 test.bas
。
Screen 13
Print "Welcome to Sysadm.cc!! 网管小贾!!"
SLEEP
END
编译 test.bas
文件
很简单,只要指明编译器路径,并不用带任何参数即可。
# 当前目录下
fbc test.bas
# 指明编译器路径
/usr/local/bin/fbc test.bas
# 加上-v可交互输出编译结果,用于查看错误
fbc -v test.bas
运行编译后程序
我们可以在 test.bas
源代码文件的同目录下直接找到编译好的程序 test
,运行它试试吧!
./test
不知缺少啥组件,在图形界面下中文会乱码。
将代码第一行注释掉,像这样 'Screen 13
。
很奇怪的是,在终端下中文却很正常地输出了。
我猜测有可能是程序库支持的问题,有懂的小伙伴请教教我。
找个代码编辑器
简单的代码我们随便拉过来一个文本编辑器就可以凑合写写也没啥,但要是代码文件多了就不怎么方便了,看来还是要找个 FreeBASIC
的专属编辑器才行。
像 Windows
下就有 WinFBE
,那么 Linux
下也有类似的吗?
答案是,也有,但不太好搞,非常复杂。
我找了一个简单的专门可用于 FreeBASIC
编译的代码编辑器 Geany
。
Geany
可以通过 apt-get
命令安装,很简单,基本上运行终端程序够用了。
不过我没有找到它开启支持 GUI
开发的地方。
如果你想实现带有 GUI
开发功能的编辑器,那么可能需要安装 GTK
库和 glade
之类的东西。
这些就涉及到 Linux
的图形编程方面的知识了,我完全是个小白,所以就不展开说明了,大家可以到网上搜索看看。
写在最后
FreeBASIC
的代码虽然使用的是 BASIC
语法,但是它对 C
库的支持非常好,难怪有不少网友称之为披着 BASIC
外衣的 C
编译器。
由此我们也能看出来,如果你对 C/C++
比较熟悉,那 FreeBASIC
也是一款编写强大程序的好利器。
此外 FreeBASIC
的强大特性使得它不用拖泥带水地还要拉上依赖库才能运行,并且不管是多少位运算的平台它都可以任意驰骋。
最后一句话总结,FreeBASIC
免费随便用,走过路过可千万不要错过哦!
扫码关注@网管小贾,阅读更多
网管小贾的博客 / www.sysadm.cc