char s[12]="abcdefgh";
MyStatic->Create((LPCTSTR)s,WS_CHILD|WS_VISIBLE|SS_CENTER,
CRect(10,10,100,50),this);
Тупой вопрос по LPCTSTR
http://firststeps.ru/mfc/steps/r.php?2 выполняю его на VS 2005 а компилятор ругаеться 'CStatic::Create' : cannot convert parameter 1 from 'char [12]' to 'LPCTSTR'.... :( просьба обьяснить в чем дело и не тыкать в мануалы :) хотя полезные линки всегда пригодяться :)
ЗЫ Заренее благодарен.
Решил поучить С++ ... :( как правильный юзверь почитал прилепленую тему.... смотрю урок
ЗЫ Заренее благодарен.
Код:
или я неправ? ;-)))
LPCTSTR - макрос, который в зависимости от установленого чарсета раскрывается либо в const wchar_t*, либо в const char*.
Поэтому надо лишь иначе опеределить строку:
TCHAR s[12] = TEXT("abcdefgh");
Green, каюсь, сразу не посмотрел, а надо было! :-)))
Project->properties->character set - поменять с юникода на мультибайт и все заработает.
(ПС это в 2к3 чарактер сет находится в пропертисах, а в 2к5 - хз :))
Project->properties->character set - поменять с юникода на мультибайт и все заработает.
(ПС это в 2к3 чарактер сет находится в пропертисах, а в 2к5 - хз :))[/QUOTE]
Спасибо помогло... а в кратце какая разница между двумя параметрами?
LPCTSTR - макрос, который в зависимости от установленого чарсета раскрывается либо в const wchar_t*, либо в const char*.
Поэтому надо лишь иначе опеределить строку:
TCHAR s[12] = TEXT("abcdefgh");[/QUOTE]
А по подробней для тупых в С++? :)
Юникод - строка в памяти представлена в кодировке юникод, который на один символ выделяет 2 байта.
wchar_t* - указатель на юникод
wchar_t x[] = "0123456789" - даная строка займет 22 байта (10 символов + 0)
char* - указатель на строку байтов
сhar x[] = "0123456789" - даная строка займет 11 байтов (10 символов + 0)