0

古いプログラムを新しい Borland C++-Builder (Embarcadero Studio XE2) でコンパイルしようとしています。

簡単にできると思ったのですが、エラーが多発します。たとえばsomefunction(TPoint(0,0))、参照を期待しているときに動作しないようなものを使用するので、書く必要がありましたTPoint t=TPoint(0,0);somefunction(t)...また、math.logのようないくつかのエラーは、floatのdoubleで動作する可能性がありますが、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 の 2 番目の引数が void MassCol_EndLableEditResp(TLwDispInfoNotify& nmHdr)
{MassCol->EndLableEditResp( 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 に答える