Я пытаюсь скомпилировать старую программу с новым Borland C ++ — Builder (Embarcadero Studio XE2).
Я думал, что это будет легко, но я получаю много ошибок. например используя что-то вроде somefunction(TPoint(0,0))
не будет работать, когда он ожидает ссылку, поэтому мне пришлось написать TPoint t=TPoint(0,0);somefunction(t)
… также некоторые ошибки, такие как math.log, могут работать с двойным числом с плавающей запятой, но получили 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 (недействительными
(TTSCalibDialog :: *) (TLvDispInfoNotify &)) ‘Гефунден
в то время как второй аргумент объявлен
void MassCol_EndLableEditResp (TLwDispInfoNotify& NMHDR)
{MassCol-> EndLableEditResp (NMHDR);};
Первый аргумент кажется также допустимым для использования здесь …
Позже есть линия, используемая
EV_LVN_ENDLABELEDIT (IDC_SIMWEIGHTCOL, AddCol0_EndLableEditResp),
с той же ошибкой, так что я думаю, что может отсутствовать включение или пространство имен …
Кто-нибудь знает эту функцию или что может вызвать ошибку?
Через некоторое время я тоже спросил на 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.
Других решений пока нет …