Cannot convert 'UnicodeString' to 'const wchar_t *

1 отговора 0 прегледа
#1

Cannot convert 'UnicodeString' to 'const wchar_t *

Имам проблем с C++ Builder 2009. Както знаете той вече има поддържка на Unicode.

Сорс кода (дошъл от C++ Builder 6 проект) е следния:
Application->MessageBox(static_cast <TControl*> (Sender)->Hint.w_str(),L"Задание - "+ static_cast <TLabel*> (FindComponent("frmHoriz"+IntToStr(selected))->FindComponent("lblName"))->Caption,MB_OK+MB_ICONINFORMATION);

Грешката при компилиране е
[BCC32 Error] unitMain.cpp(547): E2034 Cannot convert 'UnicodeString' to 'const wchar_t *'

Добавяне на .w_str() след Caption води до грешка Invalid pointer addition.
Проблема е след първата запетая, където искам да залепя 2 стринга със +.
Помощ!


Редактирано от naki на

Отговор
в отговор на naki #2

Re: Cannot convert 'UnicodeString' to 'const wchar_t *

Не съм писал на builder-а, но:
1) може би трябва да използваш strcat за wide string?
2) или ако UnicodeString има съответния конструктор и overloaded оператор:
UnicodeString zadanie(L"Задание - ");
Application->MessageBox(...., zadanie + ... );

Отговор