【发布时间】:2011-07-26 15:06:07
【问题描述】:
我正在尝试使用 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机器上的相关代码行(编译ok)是:
__property Graphics::TFont * Font={ read=GetTFontProp, write=_SetTFontProp, stored=false, index=-512 };
Win7机器上的同一行(失败)是:
__property IFontDisp* Font={ read=get_Font, write=set_Font, stored=false };
现在我不确定这种差异来自哪里。有什么想法吗?
干杯 亨德里克
【问题讨论】:
-
.net COM 服务器如何导出 VCL
Graphics::TFont? -
我不知道,但它似乎工作。可能是一些 Borland 组件包装器的魔法吗?
-
我应该补充一点,有问题的类的两个版本之间存在巨大差异,而不仅仅是一行。首先,WinXP 版本继承自 TOleControl,Win7 继承自 Oleserver::TOleServer
-
我知道在较新的 Windows 版本中拥有或拥有 problems 的其他工具。然而,在 xp 上生成的输出总是在较新的 Windows 版本中工作。也许 tlibimp 也是如此。
标签: c++ .net c++builder com-server