将Delphi VCL使用在C++ Builder中时类方法名字出现错误 ( 积分: 100 )

  • 主题发起人 dragonhux
  • 开始时间
D

dragonhux

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在C++ Builder 6.0中使用ComPort的VCL控件,出现一个问题

ComPort中关于TCustomPort的定义有一段如下(通过C++ Builder编译出的hpp文件):
class PASCALIMPLEMENTATION TCustomComPort : public Classes::TComponent
{
typedef Classes::TComponent inherited;

private:
AnsiString FPort;
... ...
void __fastcall SetPort(const AnsiString Value);
... ...
protected:
... ...
public:
__property AnsiString Port = {read=FPort, write=SetPort};
... ...
};

使用如下方法对Port属性进行设置:
ComPort->Port = "COM2";

但是在Build的时候出现如下的错误:
[Linker Error] Unresolved external '__fastcall Cport::TCustomComPort::SetPortA(const int)' referenced from D:/NAVTEX/SOFT/NAVTEXINS/NINSFORM.OBJ

通过字面的解释,好象C++ Builder将SetPort编译成为SetPortA函数,出现名字的错误。
在,不包含ComPort->Port="COM2"这句话的时候,程序可以正常编译和运行没有问题。

help:为什么会出现这样的问题,怎么解决(尽量不要去改源码)?
:-(
 
没人能解决这个问题吗?
实在不行就只有修改ComPort的源码了。
 
顶部