我正在尝试使用tlibimp.exe(版本11.0)导入第三方。net类型库(COM服务器DLL)。这基本上可以正常工作,但当我在不同的电脑上运行它时,结果就不同了,一台运行Windows XP,另一台运行Windows 7。更糟糕的是,在Win7机器上生成的代码无法编译。
两个机器都有:
- Borland c++ (RAD Studio) 2007
- tlibimp.exe version 11.0
- 相同的。net框架版本安装(据我所知,Borland 2007使用。net v2)
- bcc32.exe version 5.93
编译器在OCX.h中失败:
Parameter mismatch in write access specifier of property Font
XP机器上的相关代码行(编译正常)是:
__property Graphics::TFont * Font={ read=GetTFontProp, write=_SetTFontProp, stored=false, index=-512 };
在Win7机器上的同一行(失败了)是:
__property IFontDisp* Font={ read=get_Font, write=set_Font, stored=false };
现在我不太确定这种差异来自哪里。什么好主意吗?
干杯•
这可能有帮助,也可能没有帮助,但我有一个类似的问题,试图从c sharp程序集导入两个类型库到delphi。
一个类型库(A)继承自TOLeServer,另一个(B)继承自TOleControl,我不明白为什么,因为生成类型库的两个程序集实际上是相同的。
问题原来是B已经注册了regasm,而A没有。注册A并重新生成类型库解决了这个问题。