分享

(一)何把ocx控件打包成.cab文件

 yan的图书41 2014-08-05
把ocx控件打包成.cab文件

1、假使我已经有了一个ocx_my.ocx文件,打开vc工具Depends工具,可以看见此控件依赖的其他控件(包括dll和其他ocx控件),如图一

ocx学习点滴(一)何把ocx控件打包成.cab文件 - 小雨点 - sunny的博客
图一

 可以看见,那我们可以看到我们用到的DLL有6个,一般Kernel32.DLL和OLEAUT32.DLL文件每个操作系统都有(网页上说的,我也不是很确定),
所以剩下的4个DLL,在你机子上全盘搜索,找到这4个dll后将他们放入你的ocx_my.ocx相同文件夹下,编辑ocx_my.inf,
这些dll的版本信息FileVersion可以在此dll上点击右键->属性中得到。

以下可以知道还用到了其他三个DLL库,这三个库是可选的,可以打包到.cab文件中。

获取DLL的classid方法,打开vc工具OLE View,file--View TypeLib,找到ocx_my.ocx,如图二,在最后的位置控件属性有CLASSID,(注意这里有好几个CLASSID,要找属性为control对应的ID.,)

ocx学习点滴(一)何把ocx控件打包成.cab文件 - 小雨点 - sunny的博客
图二

 如果是在ocx开发状态下,获取classid还有一个方法,如下图三,双击"_DOcx_my",在此文档的最后,可以找到ID.(同样注意,别找错了,有helpstring("Ocx_my Control"), control标识的才是呢

ocx学习点滴(一)何把ocx控件打包成.cab文件 - 小雨点 - sunny的博客
图三

 

2、编辑编辑ocx_my.inf如下:

[version]   
signature="$CHINA$"  
AdvancedINF=1.0  
  
[Add.Code]   
ocx_my.ocx=ocx_my.ocx   
msvcr71.dll=msvcr71.dll   
mfc71.dll=mfc71.dll   
msvcp71.dll=msvcp71.dll
MFC42D.dll=MFC42D.dll
MSVCRTD.DLL=MSVCRTD.DLL
gdi32.dll=gdi32.dll
MFCO42D.DLL=MFCO42D.DLL
dll_my.dll=dll_my.dll   
  
[ocx_my.ocx]   
file=thiscab   
clsid={CDC25467-2E91-4832-8DB7-F2E6D956A17F}   
FileVersion=1,0,0,0  
RegisterServer=yes   
  
[msvcr71.dll]   
file-win32-x86=thiscab   
RegisterServer=no   
DestDir=11  
FileVersion=7,10,3052,4  
  
[mfc71.dll]   
file-win32-x86=thiscab   
RegisterServer=no   
DestDir=11  
FileVersion=7,10,3077,0

[msvcp71.dll]   
file-win32-x86=thiscab   
RegisterServer=no   
DestDir=11  
FileVersion=7,10,3077,0 

[MFC42D.dll] 
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=6.0.9782.0

[MSVCRTD.DLL]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=6.0.9782.0

[gdi32.dll]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=5.1.2600.5698

[MFCO42D.DLL]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=6.0.9782.0


[dll_my.dll]   
file-win32-x86=thiscab   
RegisterServer=no   
DestDir=11  
FileVersion=1,0,0,0 

3、编辑makeCAB_myocx.bat文件

新建一个记事本,写入
cabarc N ocx_my.cab  msvcr71.dll mfc71.dll msvcp71.dll MFC42D.dll MSVCRTD.DLL gdi32.dll MFCO42D.DLL   dll_my.dll ocx_my.ocx ocx_my.inf,保存为名为“makeCAB_myocx.bat”的文件。

4、把cabarc.Exe文件复制到当前文件目录下:

以上的步骤完成之后双击makeCAB_myocx.bat文件就可以在当前目录下得到打包好的ocx_my.cab  文件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多