zoukankan      html  css  js  c++  java
  • 使用 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 更好的发展!

  • 相关阅读:
    phpmyadmi 上传大文件
    wget 命令用法详解
    cuDnn的安装ubuntu16.04环境下(tensorflow正式安装之前的必备安装操作)
    ubuntu16.04 源码安装Python3.7 (可以在此基础上安装Tensorflow) (确保Tensorflow计算框架与系统的彻底隔离)
    大工软件学院 校园网登录脚本
    UML图 之 活动图 (汇总版)
    详解UML图之类图 (转)
    Java中private、protected、public和default的区别 (转)
    AI产业将更凸显个人英雄主义 周志华老师的观点是如此的有深度
    对什么样的人应该敬而远之
  • 原文地址:https://www.cnblogs.com/Spacecup/p/3488595.html
Copyright © 2011-2022 走看看