使用 VBRichClient 库

使用 VBRichClient 库
====================

  世上竟然还有如此牛人(Olaf Schmidt)为VB开发了如此牛的扩展库!它还有一个伟大的目标:
摆脱 Microsoft COM 的依赖,更容易实现平台移植性(基于新的经典VB编译器),现在的
VBRichClient正是为达到该目标的一个去耦框架。
    它能做什么?简单说能提供以下VB没有或很难实现的功能:多线程、函数指针调用、数组列表、高级集合类
内存数据库、XML DOM/SAX访问、子类化、公式计算、SGDI封装、各种加密和压缩算法、文件处理、网络Socket、
简单下载、JSON、JPG压缩解码、音频设备访问、物理引擎、Webkit浏览器、QLite数据库、基于Cairo的2D绘图、
打印、RPC、Web服务器…… 多到你想不到的功能,而且一直在不断扩展中。
    VBRichClient 官方网站 http://www.VBRichClient.com/    

    欢迎登陆以上网站,关注最新消息,还有其它更多内容。这里有经典VB的未来!

    由于官网也没有太多的帮助文档,所以只能通过摸索逐步熟悉该库的使用,好在涉及命名都比较通俗易懂,
虽然没有文档,理解起来基本也没有太大难度。还有通过非官方网站,可以下载到 3.0 版本的库,里面有不少
示例可以参考。

1、VBRichClient 的引用
   是的,你完全可以不对它进行引用!就可以使用它的功能!参考【使用 DirectCOM 库】
   当然你也可以按熟悉的常规方法,通过注册引用该库
2、VBRichClient 的分发
   如果采用引用方式使用,则需要将 vbRichClient5.dll 和 vb_cairo_sqlite.dll 一起复制到程序目录,并
对 vbRichClient5.dll 进行注册。
   如果采用免注册方法使用,则还需要将 DirectCOM.dll 一并复制到程序目录或System目录。
3、VBRichClient 的使用
    VBRichClient 是个相当庞大的库,需要花一些时间熟悉里面的类,最简单的办法就是使用其中的 cConstructor
类直接“生产”其它的对象。使用 DirectCOM 免注册使用,则必须使用 cConstructor 访问其他类。
    dim rcConstructor as object
    dim rcMemDB as object
    set rcConstructor = DirectCom_Create("vbRichClient5.dll", "cConstructor")
    set rcMemDB = rcConstructor.MemDB()
    rcMemDB.xxx

4、cConstructor 成员列表

    ● ArrayList
    简介:创建数组列表对象,支持动态添加、移除,也可以当队列或者栈来用,支持排序
    原型:Function ArrayList(vType As VbVarType, ParamArray P() As Variant) As cArrayList
    
    ● AudioCaptureClient
    简介:创建捕捉音频对象
    原型:Function AudioCaptureClient() As cAudioCaptureClient

    ● AudioRenderClient
    简介:创建播放音频对象
    原型:Function AudioRenderClient() As cAudioRenderClient
    
    ● Cairo
    简介:创建 Cairo 2D 绘图对象,支持许多高级绘图函数,比如反锯齿,透明,文字,变形……
    原型:Function Cairo() As cCairo
    
    ● cdeclCall
    简介:以CDECLCALL约定调用函数指针
    原型:Function cdeclCall(retType As enmRetType, pFunc As Long, ParamArray P() As Variant)

    ● cdeclCallDirect
    简介:以CDECLCALL约定调用函数指针,与cdeclCall区别不明
    原型:Function cdeclCallDirect(retType As enmRetType, pFunc As Long, pArgs As Long, ArgsByteCount As Long)
    
    ● CleanupRichClientDll
    简介:清空VBRichClient的临时文件?未验证
    原型:Sub CleanupRichClientDll()

    ● ClipBoard
    简介:创建剪切板对象,比VB自带的对象好用
    原型:Function ClipBoard() As cUniClipBoard

    ● CodePageMapping
    简介:创建编码和代码页映射对象
    原型:Function CodePageMapping() As cCodePageMapping

    ● Collection
    简介:创建集合对象,该对象比VB自带的Collection和Scripting.Dictionary有更多的功能
    原型:Function Collection([CompatibleToVBCollection As Boolean = True], [StringCompareMode As StringCompareModeEnum = 1], [UniqueKeys As Boolean = True], [Content]) As cCollection
    
    ● ControlPoints
    简介:创建控制点对象,用来在2D绘图中控制形状或曲线的参数
    原型:Function ControlPoints() As cControlPoints
    
    ● Converter
    简介:创建转换数据库对象
    原型:Function Converter([CaseInSensitiveTextColumns_ConformToJet As Boolean]) As cConverter
    
    ● CreateInstanceUnk
    简介:通过注册表中的 ClsID 和 IID 直接创建COM对象
    原型:Function CreateInstanceUnk(ClsID As String, IID As String) As IUnknown
    
    ● Crypt
    简介:创建加密对象,该对象支持各种常见加密解密算法和压缩算法
    原型:Function Crypt() As cCrypt
    
    ● DataObjectFiles
    简介:创建数据对象文件
    原型:Function DataObjectFiles() As cDataObjectFiles
    
    ● DataSource
    简介:创建数据源对象
    原型:Function DataSource() As cDataSource

    ● DC
    简介:创建设备上下文对象,GDI绘图用
    原型:Function DC([DIB As cDIB], [DDB As cDDB]) As cDC

    ● DDB
    简介:创建设备相关位图对象,GDI绘图用
    原型:Function DDB([dx As Long], [dy As Long], [Picture As StdPicture], [PictureBytes]) As cDDB

    ● DIB
    简介:创建设备无关位图对象,GDI绘图用
    原型:Function DIB([dx As Long], [dy As Long], [Picture As StdPicture], [PictureBytes], [IconBytes], [UseIconDefaultSize As Boolean], [DesiredIconSize As Long]) As cDIB

    ● Displays
    简介:创建显示器对象,支持多显示器,获取显示器硬件参数
    原型:Function Displays() As cDisplays

    ● Downloads
    简介:创建简单下载对象,支持进度报告
    原型:Function Downloads() As cDownloads

    ● EventCollection
    简介:创建事件集合对象,作用暂未知
    原型:Function EventCollection() As cEventCollection

    ● Formula
    简介:创建公式对象,对包含计算公式的字符串求值
    原型:Function Formula() As cFormula

    ● FSO
    简介:创建文件系统对象,与Scripting.FileSystemObject类似,但有更多新功能,比如打开保存文件对话框、获取临时文件、获取各种特殊文件夹……
    原型:Function FSO([CreateFreshInstance As Boolean]) As cFSO

    ● GestureConfigList
    简介:作用暂未知
    原型:Function GestureConfigList() As cGestureConfigList

    ● GetCPUCoresCount
    简介:获取CPU核心数
    原型:Function GetCPUCoresCount() As Long

    ● GetFuncPtr
    简介:获取直接从DLL文件获取函数指针
    原型:Function GetFuncPtr(LibNameOrFullPathOrHandle, FunctionName As String, [RaiseErrorIfNotFound As Boolean]) As Long

    ● GetStringFromPointerW
    简介:从指针所指内存获取字符串
    原型:Function GetStringFromPointerW(WStrPtr As Long, [ExpectedMaxLen As Long = 4096]) As String

    ● HPTimer
    简介:获取时间
    原型:Function HPTimer() As Double

    ● IsVistaPlus
    简介:是否为 Windows Vista 系统
    原型:Function IsVistaPlus() As Boolean

    ● IsWin7Plus
    简介:是否为 Windows 7 系统
    原型:Function IsWin7Plus() As Boolean

    ● IsWin8Plus
    简介:是否为 Windows 8 系统
    原型:Function IsWin8Plus() As Boolean

    ● IsXPPlus
    简介:是否为 Windows XP 系统
    原型:Function IsXPPlus() As Boolean

    ● JPG
    简介:创建JPEG解压缩对象
    原型:Function JPG() As cJPG

    ● JSONArray
    简介:创建 JSON 数组对象
    原型:Function JSONArray() As cCollection

    ● JSONDecodeToCollection
    简介:将 JSON 转换为 集合 对象
    原型:Function JSONDecodeToCollection(strJSON As String, [ParserErrors As String], [StrictParsing As Boolean = True]) As cCollection

    ● JSONDecodeToCollectionUTF8
    简介:将 JSON 转换为 集合对象,JSON字符串为UTF-8编码
    原型:Function JSONDecodeToCollectionUTF8(UTF8Bytes() As Byte, [ParserErrors As String], [StrictParsing As Boolean = True]) As cCollection
    
    ● JSONObject
    简介:创建 JSON 对象 对象
    原型:Function JSONObject() As cCollection
    
    ● KeyWatcher
    简介:创建键盘监听器对象
    原型:Function KeyWatcher(VKeysCommaSeparated As String, [WatchAllAppWindows As Boolean], [WatchSystemWide As Boolean]) As cKeyWatcher
    
    ● MemCopy
    简介:拷贝内存
    原型:Sub MemCopy(pDst As Long, pSrc As Long, Bytes As Long)
    
    ● MemDB
    简介:创建内存数据库对象
    原型:Function MemDB() As cMemDB
    
    ● MMDeviceEnumerator
    简介:创建多媒体硬件枚举器对象
    原型:Function () As cMMDeviceEnumerator
    
    ● MP3Resource
    简介:创建MP3资源对象,使用方法未知
    原型:Function MP3Resource() As cMP3Resource
    
    ● OneShotTimer
    简介:创建触发器型定时器
    原型:Function OneShotTimer() As cOneShotTimer
    
    ● OOEmbed
    简介:创建Open Office对象,未验证
    原型:Function OOEmbed([HostingContainerhWnd As Long], [DocFileName As String], [NewDocumentType As DocType = sWriter]) As cOOEmbed
    
    ● PhysicsEngine
    简介:创建物理引擎对象,常用于游戏开发
    原型:Function PhysicsEngine() As cPhysicsEngine
    
    ● Properties
    简介:创建属性对象
    原型:Function Properties() As cProperties
    
    ● Recordset
    简介:创建数据库记录对象
    原型:Function Recordset([ActiveConnection As cConnection], [Content]) As cRecordset
    
    ● RegFree
    简介:创建COM免注册对象,支持多线程
    原型:Function RegFree() As cRegFree
    
    ● ReportDocument
    简介:创建打印文档对象
    原型:Function ReportDocument([MMScaleFactor As Double = 1], [PageWidthInUserUnits As Double = 210], [PageHeightInUserUnits As Double = 297]) As cReportDocument
    
    ● ReportPage
    简介:创建打印页对象
    原型:Function ReportPage([InitDrawMode As Boolean], [Landscape As Boolean]) As cReportPage
    
    ● RPCConnection
    简介:创建RPC调用连接对象
    原型:Function RPCConnection([Host As String], [Port As Long = 22222], [KeepAlive As Boolean = True], [ServerAuthentication As Boolean], [UserName As String], [PassWord As String]) As cRPCConnection
    
    ● RPCListener
    简介:创建RPC调用监听器对象
    原型:Function RPCListener([Host As String], [Port As Long = 22222], [ThreadPoolSize As Long = 8], [ForceAuthentication As Boolean], [AdminPassWord As String], [AllowedGroup As String], [RPCDllsFolder As String], [ReadIniValues As Boolean], [StartServer As Boolean], [DefaultBinaryPathForWebRequests As String], [ToCallBeforeAnyRPC As String]) As cRPCListener
    
    ● ShellLink
    简介:创建快捷方式对象
    原型:Function ShellLink() As cShellLink
    
    ● SimpleDOM
    简介:创建 XML DOM 对象
    原型:Function SimpleDOM([XMLSource As String], [FirstParamIsFileName As Boolean]) As cSimpleDOM
    
    ● SimpleSax
    简介:创建 XML SAX 对象
    原型:Function SimpleSax() As cSimpleSax
    
    ● SMBScan
    简介:创建 SMB 服务器扫描器对象
    原型:Function SMBScan() As cSMBScan
    
    ● SortedDictionary
    简介:创建有序字典对象
    原型:Function SortedDictionary([StringCompareMode As StringCompareModeEnum], [UniqueKeys As Boolean = True]) As cSortedDictionary
    
    ● stdCall
    简介:以STDCALL约定调用函数指针
    原型:Function stdCall(retType As enmRetType, pFunc As Long, ParamArray P() As Variant)
    
    ● stdCall
    简介:以STDCALL约定调用函数指针,与stdCall区别不明
    原型:Function stdCallDirect(retType As enmRetType, pFunc As Long, pArgs As Long, ArgsByteCount As Long)
    
    ● Stream
    简介:创建数据流对象,类似于ADO中的Stream对象
    原型:Function Stream() As cStream
    
    ● StringBuilder
    简介:创建字符串构造器对象,快速组合字符串
    原型:Function StringBuilder() As cStringBuilder
    
    ● StringCompare
    简介:创建字符串比较器对象,支持多种方式比较
    原型:Function StringCompare() As cStringCompare
    
    ● SubClass
    简介:创建就子类化对象,VB中用处太大了
    原型:Function SubClass() As cSubClass
    
    ● SVG
    简介:创建 SVG 格式分析器对象
    原型:Function SVG() As cSVG
    
    ● TCPClient
    简介:创建 TCP 客户端对象
    原型:Function TCPClient() As cTCPClient
    
    ● TCPServer
    简介:创建 TCP 服务端对象
    原型:Function TCPServer([StartListening As Boolean], [Host As String], [Port As Long], [BufferSize As Long = 65536], [MaxConnections As Long = 1024]) As cTCPServer
    
    ● TDD
    简介:创建类自动化测试对象
    原型:Function TDD([TestClass As Object], [TestMethod As String]) As cTDD
    
    ● Timer
    简介:创建定时器对象,不需要窗体
    原型:Function Timer([Interval As Long], [Enabled As Boolean], [Tag]) As cTimer
    
    ● Timing
    简介:作用未知
    原型:Function Timing([Start As Boolean]) As String
    
    ● UDP
    简介:创建 UDP 网络对象
    原型:Function UDP() As cUDP
    
    ● vtblCall
    简介:以虚拟函数表调用函数
    原型:Function vtblCall(retType As VbVarType, punk As Long, vtblIdx As Long, ParamArray P() As Variant)
    
    ● WebArchive
    简介:创建WEB文档对象,配合WebServer对象使用
    原型:Function WebArchive([FileNameOrByteArrayToRead]) As cWebArchive
    
    ● WebKit
    简介:创建 WebKit 浏览器对象,需要在官网下载 WebKit 插件包,只有一个5M文件
    原型:Function WebKit([InititializeWithPath As Boolean], [WebKitDllPath As String]) As cWebKit
    
    ● WebServer
    简介:创建Web服务器对象,可以实现简单的Web服务
    原型:Function WebServer() As cWebServer
    

    更多类的用法,基本都可以见名知意,虽然没有文档,还是拜 Olaf Schmidt 大牛的福,才有了这么多
好用的工具。其中有不少类都可以改变以往VB的开发模型,提高开发和运行效率。

    另外,VBRichClient 还有不少子项目托管在 GitHub,VB爱好者可以去关注下,千万别让 VBRichClient 失去
用户,别让 Olaf Schmidt 失去开发的动力,让 VBRichClient 更好的发展!

posted @ 2013-12-24 10:28  Spacecup  阅读(4043)  评论(0编辑  收藏  举报