如何在VB中使用OCX文件
近来写的不少文件都是用到系统的ocx文件,但是发现很多xp的精简系统中居然都没有这些ocx文件。搞得我的程序在许多人的机器上无法运行,这样我就找到如下的方法来解决这个问题。即:在exe文件中将ocx作为资源文件,外部有则不理,外部没有则自动生成。 做法是,将第三方控件以自定义资源文件方式保存在程序中,程序运行之后使用控件之前将所用到的控件生成到该程序目录下,完成控件从可执行文件中的金蝉脱壳。 外接程序->外接程序管理器->VB 6 Resource Editor 加载->在工具栏里会多一个按钮,点击它。 然后就如下面的图,点击红色圆圈部分,就可以加载custom 资源了。 代码如下: Sub Main() 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 注意:将以上代码作为一个模块添加到工程中,并在工程-工程属性设置中将启动对象选为Sub Main,即上面的脱壳代码。然后编译生成EXE文件,将该EXE文件拷贝到其他没有安装所用控件的计算机上运行一下看看是否实现了控件携带之金蝉脱壳。如果是那么OK!以上为使用一个控件的情况,使用多个控件方法基本相同,不在赘述。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |