如何在VB中加载OCX文件_第1页
如何在VB中加载OCX文件_第2页
如何在VB中加载OCX文件_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何在VB中加载OCX文件可歼近来写的不少文件都是用到系统的ocx文件,但是发现很多xp的精简系统中居然都没有这些oex文件。搞得我的程序在许多人的机器上无法运行,这样我就找到如下的方法来解决这个问题。即:在exe文件中将ocx作为资源文件,外部有则不理,外部没有则自动生成。做法是,将第三方控件以自定义资源文件方式保存在程序中,程序运行之后使用控件之前将所用到的控件生成到该程序目录下,完成控件从可执行文件中的金蝉脱壳。具体做法如下:第一步:将要用到的控件拷贝到当前工程目录下,右键单击该控件,选择属性,记下文件大小。 注意,应记下以字节为单位的具体数字,而不是多少K,以备编程使用。第二步:引用并

2、正常使用该控件。第三步:新建资源文件加入工程,在资源文件编辑器中添加所使用的第三方控件为自定义资源(CUSTOM ),资源号使用默认的101。如果使用了多个控件则分别添加到资源文件的101、102资源项中,脱壳代码也要作相应的修改。第四步:编写控件脱壳代码,使其读取资源文件的数据,在程序当前目录下生成控件。说一下如何加载资源吧:外接程序-> 外接程序管理器->VB 6 Resource Editor 加载-> 在工具栏里会多一个按钮 点击它。然后就如下面的图,点击红色圆圈部分,就可以加载custom 资源了。¥B Resource Iditar - E : 

3、5;B学牙中的工程'屏保程序'屏保程序.®代码如下:Private Const OCXSIZE198456'欲生成的控件大小是 198456Byte, 名字为 MCI32.OCXSub Mai n()Dim Ocx() As Byte 'OCX 是个 BTye 类型的数组Dim Counter As LongOcx = LoadResData(101, "CUSTOM")'将自定义资源中 101号资源读入数组 OCX'注意,微软的帮助中对加载自定义资源的说明有错误,自定义资源标识为"CUSTOM"

4、而不是帮助所说的数字10If Right(App.Path, 1) = "( $%$43%#ASD#2$#f$%A)" Then '读取程序所在路径,判断是否为根目录并分别处理'程序在根目录下If Dir(App.Path& "MCI32.OCX") = "" Then '程序路径下有无控件,无则生成控件'以二进制方式写(生成)控件( CoolToolBar.ocx )到主程序所在的目录Ope n App.Path & "MCI32.OCX" For Bin ary

5、As #1For Counter= 0 To OCXSIZE - 1 '注意因为从 0 Byte 开始因此以文件大小-1Byte 为 终值Put #1, Ocx(Counter)Next CounterClose #1End IfElse'程序不在根目录下If Dir(App.Path & "MCI32.OCX") = "" Then '程序路径下有无控件 , 无则生成控件' 以二进制方式写(生成)控件( CoolToolBar.ocx )到主程序所在的目录Open App.Path & "MCI32.OCX" For Binary As #1For Counter = 0 To OCXSIZE - 1 ' 注意因为从 0 Byte 开始因此以文件大小 - 1Byte 为 终值Put #1, , Ocx(Counter)Next CounterClose #1End IfEnd IfForm1.Visible = True ' 主程序所用控件已经生成,显示主窗体,进入主程序。End Sub注意:将以上代码作为一个模块添加到工程中,并在工程 - 工程属性设置中将启动对象选为 Sub Main, 即上面的脱壳代码。然后编译生成 EXE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论