0

我正在尝试使用新的 Borland C++-Builder (Embarcadero Studio XE2) 编译一个旧程序。

我认为这很容易,但我得到了很多错误。例如,当它期望引用时,使用类似的东西somefunction(TPoint(0,0))不起作用,所以我不得不写TPoint t=TPoint(0,0);somefunction(t)......还有一些像math.log这样的错误可以使用double of float但得到uint,所以它无法决定......

但主要问题似乎与 OWL 有关。我有一个代码行,其中说明了不匹配的函数参数类型:

DEFINE_RESPONSE_TABLE1(TTSCalibDialog,TDialog)EV_LVN_ENDLABELEDIT(IDC_CALIBMASSES,MassCol_EndLableEditResp),EV_COMMAND(IDC_CALIBRATEBUT,CalibrateResp),EV_COMMAND(IDC_CALIBSAVEBUT,CalibSaveResp),EV_COMMAND(IDC_CALIBLOADBUT,CalibLoadResp),EV_COMMAND(IDC_CALIBRESTORE,CalibRestoreResp),EV_COMMAND(IDC_CALIBSETNUMMASSES,CalibSetNumMassesResp),EV_WM_DESTROY, // Ev_WM_Destroy END_RESPONSE_TABLE;

线

EV_LVN_ENDLABELEDIT(IDC_CALIBMASSES, MassCol_EndLableEditResp)

给出错误

[BCC32 Fehler] AcMode_TS_Dial.CPP(13): E2285 Keine Übereinstimmung für 'b_LV_DISPINFO_NOTIFY_Sig(void (TTSCalibDialog::*)(TLvDispInfoNotify &))' gefunden 而第二个参数声明为 void MassCol_EndLableEditResp(TLwDispInfoNotify& nmHdr)
{MassCol->EndLEditRespable nmHdr);};

第一个论点似乎也可以在这里使用......

后来有一条线使用

EV_LVN_ENDLABELEDIT(IDC_SIMWEIGHTCOL,AddCol0_EndLableEditResp),

有同样的错误,所以我认为可能缺少包含或命名空间......

有谁知道这个功能或什么可能导致错误?

4

1 回答 1

1

过了一段时间,我也在 OWLNext-Forum 上提问,在那里得到了正确的答案:

http://sourceforge.net/p/owlnext/discussion/97175/thread/a0cc4131/

void TTSCalibDialog::MassCol_EndLableEditResp(TLwDispInfoNotify& nmHdr) 
{MassCol->EndLableEditResp(nmHdr);}

此函数返回 void,但是,bool 是必需的。更改类型并在内部返回 true 解决了这个问题。

还有一些其他问题,但现在该程序正在 XE2-Studio 上愉快地编译。

于 2013-04-26T22:54:44.460 回答