我写了一个OCX控件,现在需要在网页客户端调用。这就涉及到控件的自我注册问题,需要做成一个CAB文件,于是需要写INF。但是我这个控件是在别人开发的KIT基础上做的,于是需要很多DLL文件(大概30个),这么多的文件,如果用INF 一个一个的写的话,感觉非常的麻烦,而且不好管理。请问:有没有INF语法将这些需要用到的文件放在一个文件夹里,然后只要对这个文件夹做一次类似文件的INF语法操作,作成CAB文件。或者利用BAT一类的文件,通过网页直接调用就行的办法。反正只要我这个控件能在客户端自动注册,让浏览器能使用就行。先感谢路过此地的朋友!尤其感谢在此地留下脚印的朋友!特别感谢能够在此解决此问题的XDJM。
或许对你有用。
我这个控件需要的库文件太多了,一个一个的写INF的话,非常麻烦,并且容易出错!
a.dll=a.dll
b.dll=b.dll
c.dll=c.dll
...[a.dll]
file-win32-x86=thiscab
clsid={12345678-1234-1234-1234-123456789012}
FileVersion=1,0,0,0
RegisterServer=yes[b.dll]
file-win32-x86=thiscab
clsid={12345678-1234-1234-1234-123456789012}
FileVersion=1,0,0,0
RegisterServer=yes[c.dll]
file-win32-x86=thiscab
clsid={12345678-1234-1234-1234-123456789012}
FileVersion=1,0,0,0
RegisterServer=yes...
然后使用这个文本去压缩是可以的,我就是把所有用到的dll写到文本文件,
再用下面的语句打个cab的:
cabarc -s 6144 -p n my.cab @my.txtmy.txt:
cab\msvcrt.dll
cab\mfc42.dll
cab\folder\my1.dll //有个文件夹folder
cab\folder\my2.dll
还有就是我这个控件包含大约40个相关文件。这些文件的版本还个有不同,如果一个一个的写INF的话,会很麻烦,也容易出错啊~。我想找个简单的方法第2个问题是:我做了个测试空间,只是简单的显示一个按扭。打包成CAB,包含了test.ocx test.inf 怎么网页还是不能加载呢?
[a.dll]
file-win32-x86=thiscab
clsid={12345678-1234-1234-1234-123456789012}
FileVersion=1,0,0,0
RegisterServer=yes[b.dll]
file-win32-x86=thiscab
clsid={12345678-1234-1234-1234-123456789012}
FileVersion=1,0,0,0
RegisterServer=no注:需要注册的RegisterServer=yes,不需注册的RegisterServer=no
其中的clsid={12345678-1234-1234-1234-123456789012},要和DLL的CLSID对应
2、如果没有签名,本地测试时,把IE安全调低
3、参考:http://blog.csdn.net/shanhe/archive/2004/12/25/229368.aspx
http://blog.vckbase.com/zaboli/archive/2004/11/30/1817.aspx什么打包你可以参考msdn的Packaging ActiveX Controls,我的文件也多,一个一个加吧,我觉得用了那么大那么多的dll,做这个控件没什么意义了:)
Signature="$CHICAGO$"
AdvancedInf=2.0[Setup Hooks]
hook1=hook1[hook1]
run=%EXTRACT_DIR%\InstOCX.exe -automatic然后把这个INF和这个EXE打成一个CAB包.不过还是要跟楼主泼盘冷水, 想让IE自动下载并浏览不容易,
因为你没有安全证书,无法对它进行签名(只能用测试证书签名)
而现在的浏览器大部分对未经过验证的签名都是拒绝下载和运行的,
所以要想发布还得去买证书(一般都是4000左右一年),
我也打算去买了.
不知怎么才能把所需要的所有文件都放在它的资源里,请兄弟说详细点。
不知能否提供一个简单的事例。
多谢帮忙。