C++ Builder (Rad Studio 10.2): [Ошибка bcc32] E2357 Ссылка инициализирована с помощью «char», требуется lvalue типа «wchar_t»

Я пытаюсь скомпилировать старый пакет 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);

Кто-нибудь знает, как справиться с этой проблемой?


person Patrycja    schedule 20.07.2017    source источник
comment
Дублировать? stackoverflow .com/questions/3074776/   -  person Constantin Iliescu    schedule 20.07.2017
comment
RTL и VCL перешли на Unicode в 2009 году. 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
comment
Спасибо за вашу помощь. Это работает для TRsEdit::KeyPress(WideChar &Key).   -  person Patrycja    schedule 24.07.2017