tlibimp.exe输出在不同的操作系统上有所不同

时间:2011-07-26 15:06:08

标签: c++ .net c++builder com-server

我正在尝试使用tlibimp.exe(版本11.0)导入第三方.NET类型库(COM服务器DLL)。这基本上工作正常,但是当我在不同的计算机上运行它时结果不同,一台运行Windows XP,另一台运行Windows 7.更糟糕的是,Win7机器上生成的代码无法编译。

两台机器都有:

  • Borland C ++(RAD Studio)2007
  • tlibimp.exe版本11.0
  • 安装了相同的.NET框架版本(据我所知, Borland 2007使用.NET v2)
  • bcc32.exe版本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 };

现在我不确定这种差异来自哪里。有什么想法吗?

欢呼声 亨德里克

1 个答案:

答案 0 :(得分:0)

这可能有所帮助,但是我有一个类似的问题,试图将两个类型库导入delphi,来自c sharp程序集。

一个类型库(A)继承自TOLeServer,另一个(B)来自TOleControl,我看不清楚原因,因为生成类型库的两个程序集几乎完全相同。

问题原来是B已经注册了regasm而A没有注册。注册A并重新生成类型库解决了这个问题。