Я пытаюсь скомпилировать старый пакет Turbo C++ с компилятором C++ Builder (Rad Studio 10.2).
При этом у меня возникла ошибка:[bcc32 Error] E2357 Reference initialized with 'char', needs lvalue of type 'wchar_t'
связанная с этим блоком кода:
void __fastcall TRsEdit::KeyPress(char &Key)
{
bool ok = true;
if ( ! IsNumber(Key))
{
if (! IsTabOrReturn(Key))
ok = false;
}
if (!ok && !ComponentState.Contains(csDesigning) )
Key = 0;
TEdit::KeyPress(Key);
}
Произошла ошибка для строки: TEdit::KeyPress(Key)
Эта процедура объявлена в файле Vcl.StdCtrl.hpp как:
DYNAMIC void __fastcall KeyPress(System::WideChar &Key);
Кто-нибудь знает, как справиться с этой проблемой?
System::Char
иSystem::String
были изменены сchar
/AnsiString
наwchar_t
/UnicodeString
. Таким образом,TRsEdit::KeyPress(char &Key)
следует обновить доTRsEdit::KeyPress(WideChar &Key)
илиTRsEdit::KeyPress(Char &Key)
, чтобы он соответствовал новой подписиTEdit::KeyPress()
. - person Remy Lebeau   schedule 20.07.2017