0

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

两台机器都有:

  • Borland C++ (RAD 工作室) 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 };

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

干杯亨德里克

4

1 回答 1

0

这可能有帮助,也可能没有帮助,但我在尝试从 c sharp 程序集将两个类型库导入 delphi 时遇到了类似的问题。

一个类型库 (A) 从 TOLeServer 继承,另一个 (B) 从 TOleControl 继承,我不明白为什么,因为生成类型库的两个程序集几乎相同。

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

于 2012-12-10T11:08:18.163 回答