近来写的不少文件都是用到系统的ocx文件,但是发现很多xp的精简系统中居然都没有这些ocx文件。搞得我的程序在许多人的机器上无法运行,这样我就找到如下的方法来解决这个问题。即:在exe文件中将ocx作为资源文件,外部有则不理,外部没有则自动生成。
做法是,将第三方控件以自定义资源文件方式保存在程序中,程序运行之后使用控件之前将所用到的控件生成到该程序目录下,完成控件从可执行文件中的金蝉脱壳。
具体做法如下:
第一步:将要用到的控件拷贝到当前工程目录下,右键单击该控件,选择属性,记下文件大小。注意,应记下以字节为单位的具体数字,而不是多少K,以备编程使用。
第二步:引用并正常使用该控件。
第三步:新建资源文件加入工程,在资源文件编辑器中添加所使用的第三方控件为自定义资源(CUSTOM),资源号使用默认的101。如果使用了多个控件则分别添加到资源文件的101、102......资源项中,脱壳代码也要作相应的修改。
第四步:编写控件脱壳代码,使其读取资源文件的数据,在程序当前目录下生成控件。
说一下如何加载资源吧:
外接程序->外接程序管理器->VB 6 Resource Editor 加载->在工具栏里会多一个按钮,点击它。
然后就如下面的图,点击红色圆圈部分,就可以加载custom 资源了。