自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 解决frpc中断的问题

只需要写个批处理run.bat来启动frpc,start参数后面加个/wait,表示等到程序执行完成,当执行完成的时候,不管三七二十一,再重新运行run.bat,如此就进入一个死循环。如果真的想要终止进程,就把bat的cmd进程给终止了,再终止frpc。综上所诉,我在酒店的服务器上安装一个frpc,买了一个阿里云的centos轻服务器安装frps,然后把PMS的数据库通过内网映射到阿里云的轻服务器的端口,从而实现在轻服务器上的thinkphp访问酒店的数据库。执行了几天,再也没有访问中断的问题了。

2023-06-14 07:17:54 1696

原创 VisualFreebasic重绘RichEdit实现文本框垂直居中

原则上我又不会去改作者的源码,一般会把组件复制一份,例如这里我会把组件的RichEdit复制一份,改成RichEditEx来实现。奇怪的事情发生了,创建一个新项目,拽一个RichEditEx到窗体,预览是好的,但是运行之后控件进去之后窗体是空的。也就是说,如果系统检测生成的代码中包含ClsRichEdit.inc就会自动的在生成的代码中加入加载RichEdit的dll,反之就不加载。剩下的问题就很简单了,创建一个空窗体,把原版的RichEdit拽一份上去,扩展的RichEditEx才能正常的使用。

2023-05-25 09:50:01 344 1

原创 纯C实现https请求,跨平台的httpclient库,体积仅100K

粗略看一下代码,会发现ft_http_client_t结构体并没有翻译出来,这个结构体比较复杂,但是我们可以申明一个type ft_http_client_t as any ptr,然后把ft_http_client_t ptr全部替换为ft_http_client_t。编译完成可以得到libhttpclient.a,体积只有122k,将文件拷贝到Compile\expand\lib\win32文件夹。找了一圈,最终发现有个停更七年的开源项目httpclient,项目地址在。

2023-05-09 06:02:33 1329 4

原创 MSYS2 Mingw32/64编译CivetWeb,集成到VisualFreeBasic

CivetWeb是一款简单易用且强大的开源 C/C++ 嵌入式 web 服务器,支持 CGI、SSL、Lua脚本、HTTP、Websocket、WebDAV,可作为库引入已有项目,使其转变成 web 服务器,也可做为独立的 web 服务器使用。本文主要目的是使用gcc编译项目,然后翻译Freebasic的文件头,最终实现在VisualFreeBasic上调用,实现多线程、不阻塞、基于事件驱动的Web服务器。在演示代码里面,我人为的让程序停止执行2秒钟,然后在客户端不停的刷新页面,最终结果如下。

2023-05-07 10:25:01 382 1

原创 VisualFreeBasic通过WinHttp.dll实现Http/Https请求

2、FreeBasic的String类型,不能赋值为NULL,DownloadString和UploadString暂时采用了ZString Ptr返回NULL表示请求异常,然后调用GetErrorMessage获取请求异常的信息。1、封装的时候,对于下载的进度,我暂时采用的是SendMessage的方法通知hWndForm属性对应的窗体,由于刚写FreeBasic的代码不久,对于回调和线程方面的知识储备不够。2、没有处理异常的操作,失败返回空,问题是Web请求是可以返回空的啊。能告诉我错误的原因吗?

2023-05-04 23:58:42 495

原创 VisualFreeBasic的TRE正则表达式修复

解压之后,把win32和win64的tre.a拷贝到VisualFreeBasic的Compile\FreeBASIC-1.09.0-winlibs-gcc-9.3.0\lib\对应的目录下面即可。创建一个TestTRE的标准exe项目,在头文件加入(总之头文件,都在这个文件夹下面加入,避免奇葩的编译问题)上一篇说到pcre/pcre2的修复,这一篇主要是说到TRE的修改,其实这个库本身fbc编译器也在使用。然而,经过我测试,我发现这完全是低估了这个库,这个库不仅是不错,而是飞快,快到让人难以想象。

2023-05-02 09:11:28 73

原创 VisualFreeBasic的pcre/pcre2正则表达式修复

更老一点的PCRE版本初次发布时间是1997年,当前仍被广泛的使用,现在已经到了8.45版了。PS:编译之后的程序体积变成了408K,也就是引入正则表达式之后的主程序体积增加了257K。当前的版本,PCRE2的初次发布是在2015年,现在已经到了10.42版了。只是对应的库没有加进来,本人的主要目的,就是记录这两个pcre库的编译过程,同时也记录几个常见的正则c/c++库。编译方法跟pcre是一样的,只是这个版本更新一些,体积更大,我对程序体积看中,就忽略这个库了。奇怪了,把在Form1中宏定义的。

2023-05-02 06:41:05 176

原创 VisualFreeBasic的pcre/pcre2正则表达式修复

更老一点的PCRE版本初次发布时间是1997年,当前仍被广泛的使用,现在已经到了8.45版了。对于一些新的特性,将会被加入到PCRE2中,而并不会加入到8.x系列中。当前的版本,PCRE2的初次发布是在2015年,现在已经到了10.42版了。只是对应的库没有加进来,本人的主要目的,就是记录这两个pcre库的编译过程,同时也记录几个常见的正则c/c++库。本人下载的都是VisualFreeBasic自带头文件的两个版本。编译方法跟pcre是一样的,只是这个版本更新。编译好体积是228k,体积还是比较理想的。

2023-05-02 00:48:16 180

原创 VisualFreeBasic集成轻量级的https服务器及客户端的mongoose

下面再编译,要特别注意的是要编译的时候,要加-I 参数,后面是mbedtls源码目录下面的include文件夹,不然编译器会找不到mbedtls/debug.h这些头文件而失败。最后生成的程序体积为858K,也就是说集成一个支持SSL/TLS的Web服务器,一共只需要707K,这已经是一个极其迷你的体积了。编译的时候,发现mbedtls的aes加密也支持的很完善,这个下面我们再抽个时间把这个也剥离来做一下测试。通过这个模块,可以实现自定义的API服务器,保证客户端和服务器之间的通信是加密的。

2023-05-01 16:04:48 309

原创 LibTomCrypt里AES/ECB/256与OpenSSL/.Net/Java结果不一致的处理

填充后:{70 61 73 73 77 6f 72 64 54 65 78 74 43 61 73 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}不需要填充,但是明文必须是16个字节的整数倍。如果不是,那么就需要使用者自己去实现填充。除了No padding这种填充模式,其余的填充模式,如果已经是16个字节的数据,会在填充一个16字节的数据.除了No padding这种填充模式,其余的填充模式,如果已经是16个字节的数据,会在填充一个16字节的数据.

2023-04-30 06:27:04 269

原创 Mingw32/64编译LibTomCrypt加密库,为VisualFreeBasic增加AES加密函数

对于大部分的不做浏览器开发的人来说,我们平时只需要加解密,例如Md5、CRC、AES、XTEA等,为了一个简单的加解密功能把整个OpenSSL库引进来导致程序大了一截,真的不合算。最终编译出来的库,发现加密的结果跟openssl的不一样,我估计应该是填充的问题,因为libtom库在行业的名声很响,没理由有这种低级错误。cryptlib在VisualFreeBasic中有,但是加载会出错,应该是跟WinCrypt.dll的某些宏定义重复了,这个我们以后有时间再重试。这个不在本文的介绍范畴。

2023-04-30 06:09:16 324

原创 VisualFreeBasic调用超轻量级JSON解析器cJSON库

综合考虑,能选择的就cJSON和json-c,其中后者在VisualFreeBasic已经集成,但是版本是1.20的,最后编译时间是2014年的1.12版本,最新版本已经是1.16,期间更新也不少。而且cJSON的stars比json-c多几倍。作者主要的业务就是开发管理系统,管理系统必然涉及到API和Json的读写解析,在确定选用VisualFreeBasic之后就要考虑到接口通信协议使用的就是Json的读写问题。4、只要开源的c/c++的项目,只要能使用mingw32/64进行编译,基本上都可以集成。

2023-04-30 01:20:59 216 1

原创 VisualFreeBasic+Miniblink做浏览器实现js内容替换

这篇文章做了一下Miniblink在vfb下的调用和回调的处理,通过拦截请求并修改返回的内容,修正uniapp和Miniblink的兼容问题,举一反三,这个也可以实现把浏览器的请求拦截、保存、修改。​。

2023-04-22 06:49:49 189

原创 VFB读取注册表,判断电脑是否安装了.Net环境

对于.Net的程序如果当前的Window版本是XP,默认没有安装.Net 2.0,如果是Win7或者Win2008则没有.Net 4.0。客户如果直接双击应用程序会弹出错误提示,程序无法运行。如果VFB编写一个引导程序,启动之前先检测一下注册表,判断.Net对应的版本是否安装,则可以避免上述的错误。VFB确实很适合编写应用程序,因为可以无障碍调用Window的API,而且编译出来的程序体积超级小。

2023-04-11 22:37:03 187 1

原创 VC2015及以上编译提示error C4995: “wcscpy”: 名称被标记为 #pragma deprecated

c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\atlmfc\include\atlconv.h(769): error C4995: “wcscpy”: 名称被标记为 #pragma deprecated。

2023-04-05 21:04:51 189 1

原创 勇芳VFB的Miniblink组件实现文件下载

要特别注意的是,wkeNetJobDataBind的两个回调,得声明是cdecl导出的,不然这个接口wkeNetJobDataRecvCallback只会被调用一次,然后程序就会平栈错误直接崩溃。Miniblink的免费版本node.dll导出的是纯C接口, 也就是__cdecl,而不是常见的__stdcall,这个也给增加了一些麻烦。收费版本mb.dll则采用stdcall接口,但是我们秉着不改vfb的浏览器组件的原则写例子,等下面有时间,我们再写个vfb的控件。2、如果没有,则从url的路径获取名字。

2023-04-05 06:31:04 439

原创 VB6+Miniblink实现7Zip压缩后10M的浏览器

由于VB多线程的兼容性不好,浏览器肯定会涉及到文件的下载(软件带有安装包下载、报表的下载),而Miniblink的VIP版本mb.dll点击下载回调是mbOnDownloadInBlinkThread,这个方法是在线程中调用的,VB使用mb开头的函数只要涉及到线程的话,在开发时能通过,但是到编译成程序后会直接崩溃。Miniblink是一款非常值得推荐的精简版的cef3的浏览器组件,作者扫地僧是国内浏览器界的大咖。如果选择的是No_Node版本,则编译的是v8_4_8和v8_4_8_1。

2023-04-05 01:58:13 578 1

FBWinPrint 0.12

FreeBasic下面打印的组件 #Include "windows.bi" #Include "FBWinPrint.bi"

2023-12-02

cJSON的Mingw32/64的静态库、转换好的cJSON.bi

cJSON的Mingw32/64的静态库、转换好的cJSON.bi 把文件拷贝到指定的目录即可。 编译方式参考https://blog.csdn.net/meishow88/article/details/130430869

2023-04-30

VisualFreeBasic+Miniblink实现文件下载例子

VFB有Miniblink的demo,但是没有文件下载的例子,作为一个浏览器组件,怎么能少了这个功能呢? 由于Miniblink免费版的dll使用的是cdecl导出函数,在做开发的时候,wkeDownload2的回调函数也是cdecl,不然wkeNetJobDataRecvCallback回调函数只能被执行一次,程序就因为出现平栈错误崩溃。 案例特别感谢网友驰骋乾坤,专家一句话,少跑多少冤枉路。。

2023-04-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除