原创:CPort264 以上在BCB6下编译问题的解决 ( 积分: 0 )

W

wukw

Unregistered / Unconfirmed
GUEST, unregistred user!
原创:CPort264 以上在BCB6下编译问题的解决
CPort很好用,CPort2.63以下在BCB5下编译安装没问题。可是大家现在一般都用BCB6吧,CPort2.63却在BCB6下不能升级编译,只好安装CPort2.64到CPort3.10之间的版本。这几个版本在Delphi下安装使用都没有问题,但BCB6下编译安装却有2个问题,第二个问题还很麻烦!原因我觉得可能是CPort作者不负责任!这对初学者(当然我也是初学者)来说可能还不容易解决,至少我在网上搜了半天说什么的都有,也没见到什么有效的解决办法。搜到一模一样的问题就连在外国论坛上有人提问也是没人回答,后来终于自己解决了,如下:
安装问题:很简单,重复声明:
[C++ Error] CPort.hpp(683): E2238 Multiple declaration for '_fastcall EComPort::EComPort(int)'
[C++ Error] CPort.hpp(675): E2344 Earlier declaration of '_fastcall EComPort::EComPort(int)'
[C++ Error] CPort.hpp(695): E2238 Multiple declaration for '_fastcall EComPort::EComPort(int,int)'
[C++ Error] CPort.hpp(674): E2344 Earlier declaration of '_fastcall EComPort::EComPort(int,int)'
解决办法:不用怕,屏蔽以下2句话:
// __fastcall EComPort(int ACode, int AWinCode);
// __fastcall EComPort(int ACode);

编译使用时的问题:SetPortA函数的obj对象找不到:
[Linker Error] Unresolved external '__fastcall Cport::TCustomComPort::SetPortA(const System::AnsiString)' referenced from E:/BCB_JIN/TESTCOM/TESTCOM.OBJ
解决办法:找到以下三句话:
procedure SetPort(const Value: TPort);
property Port: TPort read FPort write SetPort;
procedure TCustomComPort.SetPort(const Value: TPort);
改成:
procedure SetPortA(const Value: TPort);
property Port: TPort read FPort write SetPortA;
procedure TCustomComPort.SetPortA(const Value: TPort);
其实估计大家一般使用
ComPort->Port = Port;
就行了。SetPortA也没什么用,却严重影响编译使用。所以大家放心大胆改原函数吧,没事的。
 
顶部