我有几个需要从C#项目访问的ActiveX组件。
我可以通过Visual Studio的add reference对话框导入它们,这也将自动生成包装器类。(即ABCLib和AxABCLib)
我知道我可以通过在每个单独的OCX文件上运行TLBIMP /primary来手动生成主互操作程序集,但是我找不到一种方法来生成ActiveX包装器,除非我通过Visual Studio用户界面这样做。
在.NET SDK中有生成ActiveX包装器的命令行版本吗?
我想从我从TLBIMP手动获得的PIA生成AxABCLib版本。(例如,设置名称空间、输出dll文件名等)有可能吗?
发布于 2009-01-15 09:25:16
哦..。在查看TLBIMP所属的文件夹后找到的。
它被称为AxImp。
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\AxImp.exe
因此,基本上,要在您自己的自定义命名空间中生成PIA DLL:
sn -k
在ocx上使用tlbimp abc.ocx /primary /keyfile:abc.snk /out:abc.dll /namespace:MyNamespace
rcw开关来使用您自己手动生成的PIA。aximp abc.ocx /source /rcw:abc.dll
这应该就行了。
然而,进口古老的TLB存在一些问题。我还不确定如何解决这个问题。
https://stackoverflow.com/questions/446121
复制相似问题