如何在VB中加载OCX文件.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
VB 中加载 OCX 文件的方法和实现 在 VB 中加载 OCX 文件是许多开发者经常遇到的问题,特别是在xp 的精简系统中,许多 OCX 文件都不存在,这会导致程序在许多人的机器上无法运行。为了解决这个问题,文章提供了一种方法,即将 OCX 文件作为资源文件,外部有则不理,外部没有则自动生成。 实现方法: 1. 将要用的控件拷贝到当前工程目录下,右键单击该控件,选择属性,记下文件大小。 2. 引用并正常使用该控件。 3. 新建资源文件加入工程,在资源文件编辑器中添加所使用的第三方控件为自定义资源(CUSTOM),资源号使用默认的101。 4. 编写控件脱壳代码,使其读取资源文件的数据,在程序当前目录下生成控件。 控件脱壳代码: Private Const OCXSIZE = 198456 '欲生成的控件大小是198456Byte,名字为 MCI32.OCX Sub Main() Dim Ocx() As Byte 'OCX 是个 Byte 类型的数组 Dim Counter As Long Ocx = LoadResData(101, "CUSTOM") '将自定义资源中101 号资源读入数组OCX '注意,微软的帮助中对加载自定义资源的说明有错误,自定义资源标识为"CUSTOM"而不是帮助所说的数字 10 If Right(App.Path, 1) = "( $%$43%^#ASD#2@$#f$%^)" Then '读取程序所在路径,判断是否为根目录并分别处理 '程序在根目录下 If Dir(App.Path & "MCI32.OCX") = "" Then '程序路径下有无控件,无则生成控件 '以二进制方式写(生成)控件(CoolToolBar.ocx)到主程序所在的目录 Open App.Path & "MCI32.OCX" For Binary As #1 For Counter = 0 To OCXSIZE - 1 '注意因为从0 Byte开始因此以文件大小- 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If Else '程序不在根目录下 If Dir(App.Path & "\MCI32.OCX") = "" Then '程序路径下有无控件,无则生成控件 '以二进制方式写(生成)控件(CoolToolBar.ocx)到主程序所在的目录 Open App.Path & "\MCI32.OCX" For Binary As #1 For Counter = 0 To OCXSIZE - 1 '注意因为从0 Byte开始因此以文件大小- 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If End If Form1.Visible = True '主程序所用控件已经生成,显示主窗体,进入主程序。 End Sub 使用方法: 1. 将以上代码作为一个模块添加到工程中,并在工程- 工程属性设置中将启动对象选为Sub Main, 即上面的脱壳代码。 2. 然后编译生成EXE 文件,将该 EXE 文件拷贝到其他没有安装所用控件的计算机上运行一下看看是否实现了控件携带之金蝉脱壳。如果是那么OK! 加载 OCX 文件需要将其作为资源文件,外部有则不理,外部没有则自动生成。并且需要编写控件脱壳代码,使其读取资源文件的数据,在程序当前目录下生成控件。
- 粉丝: 15
- 资源: 11万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助