<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JasonFriday的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JasonFriday</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JasonFriday]]></copyright><item><title><![CDATA[PB开发Windows服务方案]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/135096342</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/135096342</guid><author>JasonFriday</author><pubDate>Tue, 19 Dec 2023 22:50:17 +0800</pubDate><description><![CDATA[​		PB作为一门客户端开发语言，虽然官方并未提供标准的Windows服务开发方案，但使用PB开发Windows服务并非无法实现。自PB9开始，PB提供了PBNI接口，PB与C++可以通过这个接口互相调用，而C++可以开发Windows服务。因此只要使用C++将Windows服务的主体结构固化下来，在适当的时候通过PBNI接口启动PB进程、调用PB编写的处理过程，就能够实现以PB语言开发Windows服务。PBExtSVC就是这样一个实现PB语言以固定模板快速开发Windows服务的工具。]]></description><category></category></item><item><title><![CDATA[PB语言实现控制反转(IoC)]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/129905716</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/129905716</guid><author>JasonFriday</author><pubDate>Sun, 02 Apr 2023 00:52:20 +0800</pubDate><description><![CDATA[是一个以C++开发的，实现PB语言控制反转功能的项目。基于此项目，PB能够将对象的生命周期、依赖关系以及属性的加载托管给IoC容器。]]></description><category></category></item><item><title><![CDATA[PB语言实现反射机制]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/125529321</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/125529321</guid><author>JasonFriday</author><pubDate>Wed, 29 Jun 2022 20:55:52 +0800</pubDate><description><![CDATA[PowerReflect是一个实现PB语言反射功能的PBNI项目]]></description><category></category></item><item><title><![CDATA[PB实现国密SM2/SM3/SM4算法（DLL方式）]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/118461907</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/118461907</guid><author>JasonFriday</author><pubDate>Sun, 04 Jul 2021 20:54:54 +0800</pubDate><description><![CDATA[文章目录SM4SM3SM2
SM4
SM3
SM2

]]></description><category></category></item><item><title><![CDATA[PB实现编码解码算法（DLL方式）]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/118460818</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/118460818</guid><author>JasonFriday</author><pubDate>Sun, 04 Jul 2021 13:39:41 +0800</pubDate><description><![CDATA[文章目录BASE64编码解码编码解码URL编码解码编码解码HEX编码解码编码解码说明
BASE64编码解码
编码
待编码文本：
1977年，三位数学家Rivest、Shamir 和 Adleman 设计了一种算法
代码及执行效果如下：
n_code_util code_util
n_func_charset ln_charset
string ls_text, ls_text_base64
blob lblb_text

ls_text = '1977年，三位数学家Rivest、Shamir 和 Adlem]]></description><category></category></item><item><title><![CDATA[PB开发WebSocket客户端方案]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/114554550</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/114554550</guid><author>JasonFriday</author><pubDate>Mon, 08 Mar 2021 23:49:25 +0800</pubDate><description><![CDATA[文章目录测试服务端WebSocket客户端的使用资源下载
测试服务端
先使用PowerServer开发一个WebSocket服务端用于测试，代码如下：
新增类psw_demo03继承PowerServerWebSocket，重写ws_open方法
req.send_ws_string('连接已开启')

重写ws_message方法
req.send_ws_string('收到消息：' + data)

编译项目，启动PowerServer，首先使用WebSocket在线工具测试：

PowerServer]]></description><category></category></item><item><title><![CDATA[PB开发WebSocket服务端方案PowerServer]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/114415111</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/114415111</guid><author>JasonFriday</author><pubDate>Fri, 05 Mar 2021 21:51:36 +0800</pubDate><description><![CDATA[文章目录PowerServer服务端快速开始服务端的实现服务启动测试项目与文档下载
PowerServer服务端
PowerServer提供了以PowerBuilder语言开发HTTP服务端和WebSocket服务端的方案。使用PowerServer开发HTTP服务端可以参考文章：PB开发HTTP服务端方案PowerServer
本文演示使用PowerServer开发WebSocket服务端。
快速开始
服务端的实现
1.新增测试类psw_demo01，继承powerserverwebsocket：

2.]]></description><category></category></item><item><title><![CDATA[PB创建和解析XML方案]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/114365002</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/114365002</guid><author>JasonFriday</author><pubDate>Thu, 04 Mar 2021 14:02:39 +0800</pubDate><description><![CDATA[文章目录示例XML文档创建XML解析XML项目下载
示例XML文档
本文将以下面的XML文档为例，演示在PB中构建与解析XML文档：
&lt;?xml version="1.0"?&gt;
&lt;bookstore&gt;
	&lt;book id="1"&gt;
		&lt;name&gt;冰与火之歌&lt;/name&gt;
		&lt;author&gt;乔治马丁&lt;/author&gt;
		&lt;year&gt;2014&lt;/year&gt;
		&lt;price&gt;89&lt;]]></description><category></category></item><item><title><![CDATA[PB动态创建带参数据窗口]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/114327390</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/114327390</guid><author>JasonFriday</author><pubDate>Wed, 03 Mar 2021 22:52:32 +0800</pubDate><description><![CDATA[文章目录SQL数据源存储过程数据源
SQL数据源
存储过程数据源

]]></description><category></category></item><item><title><![CDATA[PB开发HTTP服务端方案PowerServer]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/114228919</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/114228919</guid><author>JasonFriday</author><pubDate>Sun, 28 Feb 2021 17:21:08 +0800</pubDate><description><![CDATA[文章目录PowerServer简介如何使用配置PowerServerConfig.json创建PB12.5项目，引入powerserver.pbl编译PB12.5项目，拷贝pbd文件启动PowerServer.exe快速开始示例 : Hello World1.创建PB12.5项目powerserver_demo，引入powerserver.pbl2.新增类psc_helloworld，继承powerservercontroller3.编译项目，拷贝pbd文件至\PowerServer\PowerLib目录4]]></description><category></category></item><item><title><![CDATA[PB调用JAVA代码方案（基于PBNI和JNI）]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/108413492</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/108413492</guid><author>JasonFriday</author><pubDate>Sun, 06 Sep 2020 17:20:15 +0800</pubDate><description><![CDATA[文章目录PBNI与JNIPBNIJNI类型映射创建目标与代理目标Java方法PB代理类调用流程加载JVM创建PB代理对象调用代理对象方法示例示例1：调用Java Class字节码示例2：调用JAR包示例3：调用依赖JAR包的Java  Class字节码代码下载
PBNI与JNI
PBNI
JNI
类型映射
创建目标与代理
目标Java方法
PB代理类
调用流程
加载JVM
创建PB代理对象
调用代理对象方法
示例
示例1：调用Java Class字节码
示例2：调用JAR包
示例3：调用依赖JAR包的Jav]]></description><category></category></item><item><title><![CDATA[PBNI调用C++ map对象]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/107549135</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/107549135</guid><author>JasonFriday</author><pubDate>Thu, 23 Jul 2020 22:17:42 +0800</pubDate><description><![CDATA[文章目录PB代码测试方法列表put与getget_keysdel与resetC++代码dllmain.cppcmap.hcmap.cpp
PB代码测试
方法列表
导入编译好的dll，PB项目中生成cmap类，有如下方法：
//把键值对存入map
subroutine put(readonly string key, any value)
//通过键取出对应的值
function any get(readonly string key)
//删除键以及对应的值
subroutine del(readonly ]]></description><category></category></item><item><title><![CDATA[PB低版本下的UTF8字符编码转换]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/106573864</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/106573864</guid><author>JasonFriday</author><pubDate>Fri, 05 Jun 2020 19:57:55 +0800</pubDate><description><![CDATA[文章目录to_utf8from_utf8源代码
to_utf8
功能：将ANSI编码字符串转为UTF8编码字节流 
语法：to_utf8(s, buf) 
参数：s string 传入ANSI编码的字符串
     buf blob 返回UTF8编码的字节流
返回值 long UTF8编码的字节流长度

测试待编码字符串：PB低版本下的UTF8字符编码转换
n_func_charset ln_charset
string ls_ansi
blob lblb_utf8

ls_ansi = 'PB低版本下的U]]></description><category></category></item><item><title><![CDATA[PB调用JavaScript的简单应用]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/105431641</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/105431641</guid><author>JasonFriday</author><pubDate>Fri, 10 Apr 2020 13:35:43 +0800</pubDate><description><![CDATA[文章目录URL编码与解码解析XMLcrypto-js库加解密算法MD5HmacSHA256源代码
Windows系统里提供了一个名为ScriptControl的OCX组件，可以用来执行JavaScript和VBScript等脚本语言。针对PB语言缺乏的各种基础算法功能，使用JavaScript相应的库来实现是一种比较好的方式。
下图为ScriptControl组件提供的方法：

URL编码与解码
...]]></description><category></category></item><item><title><![CDATA[PB文档模板框架]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/103843697</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/103843697</guid><author>JasonFriday</author><pubDate>Tue, 07 Jan 2020 11:41:44 +0800</pubDate><description><![CDATA[文章目录简介开发背景框架简介框架使用加载模板绑定数据源输出文档模板语法保留字与转义符文本注释参数表达式语句块判别模板函数级联检索、过滤、排序文档模板实例示例代码
简介
开发背景
PB作为一门CS模式的开发语言，开发工作中常常会遇到组装文档的场景，例如接口开发时需要组装某些文本交互语言（JSON、XML等）的文档。
对于特定格式的文档，目前有一些针对性的解决方案，例如：
XML：PBDOM组件可以结...]]></description><category></category></item><item><title><![CDATA[PB JSON工具n_json新版本]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/103498792</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/103498792</guid><author>JasonFriday</author><pubDate>Wed, 11 Dec 2019 20:43:47 +0800</pubDate><description><![CDATA[文章目录更新内容新增方法getKeysextendsetSQL、setSQLRow修改方法hasItemstringify修改属性pretty_stringify源代码
更新内容
新增方法
getKeys
获取属性名列表，返回属性个数
n_json ljson
string ls_key_list[]
long ll_key_count

ljson = create n_json
ljson.p...]]></description><category></category></item><item><title><![CDATA[PB代理模式调用WebService]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/103498060</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/103498060</guid><author>JasonFriday</author><pubDate>Wed, 11 Dec 2019 20:00:21 +0800</pubDate><description><![CDATA[文章目录测试WebService接口创建SoapClient代理类和XMLHTTP代理类创建测试接口代理SoapClient方式调用XMLHTTP方式调用说明
测试WebService接口
WebService地址：http://localhost:7777/pbservice/testsrv.asmx?wsdl
接口定义： public function string addstr (strin...]]></description><category></category></item><item><title><![CDATA[PB调用WebService方式总结]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/101169961</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/101169961</guid><author>JasonFriday</author><pubDate>Sun, 22 Sep 2019 22:53:24 +0800</pubDate><description><![CDATA[文章目录测试WebService接口SOAP协议调用HTTP方式调用SOAP通过inet对象调用通过XMLHTTP调用HTTP方式直接调用通过inet对象调用通过XMLHTTP调用PB WebService代理调用
测试WebService接口
WebService地址：http://localhost:7777/pbservice/testsrv.asmx?wsdl
接口定义： public f...]]></description><category></category></item><item><title><![CDATA[PB版线程池多线程DEMO]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/100024956</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/100024956</guid><author>JasonFriday</author><pubDate>Thu, 22 Aug 2019 22:30:42 +0800</pubDate><description><![CDATA[文章目录DEMO运行开发接口源代码
DEMO运行
线程任务为：随机挂起0~2000ms后返回
线程池参数：核线程8，最大线程16，任务队列256，开始运行

运行结束，用时约13秒

将线程池的核线程增加到32，再次运行

运行结束，用时约4秒

开发接口
n_thread_runnable：线程执行接口，类似Java中的Runnable
事件 init(any param)：实现子线程初始化代码...]]></description><category></category></item><item><title><![CDATA[PB实现URL模式及MIME模式的BASE64加解密]]></title><link>https://blog.youkuaiyun.com/JasonFriday/article/details/96151104</link><guid>https://blog.youkuaiyun.com/JasonFriday/article/details/96151104</guid><author>JasonFriday</author><pubDate>Tue, 16 Jul 2019 21:58:56 +0800</pubDate><description><![CDATA[BASE64编码
标准BASE64编码
将任意字节流编码为字符串，每3字节转换为4个字符，用于编码的字符集合为如下64个字符：
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
URL模式BASE64编码
标准编码的字符集合中，把+换成-，把/换成_，即编码的字符集合为：
ABCDEFGHIJKLMNOPQRSTUVW...]]></description><category></category></item></channel></rss>