C ++ Builder — C ++: перекомпиляция старого кода с использованием owl

Я пытаюсь скомпилировать старую программу с новым 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),

с той же ошибкой, так что я думаю, что может отсутствовать включение или пространство имен …

Кто-нибудь знает эту функцию или что может вызвать ошибку?

0

Решение

Через некоторое время я тоже спросил на 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.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]