2010-06-25 5 views
0

получил этот код с веб-сайта, который помог мне создать кнопки и прочее. кнопки работают, но по какой-то причине они получают ошибку компилятора при создании статичности.литье LPCWSTR в LPCSTR

cannot convert from 'const wchar_t [5]' to 'char'

cannot convert parameter 3 from 'char' to 'LPCWSTR'

это есть просто способ исправить это? Я попробовал лить тексты в другую переменную и сделал ее просто символом.

static char *lyrics = TEXT("Dood"); 



switch (message) 
{ 

case WM_CREATE: 
{ 
     CreateWindow(TEXT("button"), TEXT("Beep"),  
       WS_VISIBLE | WS_CHILD , 
       20, 300, 80, 25,   
       hWnd, (HMENU) 1, NULL, NULL);  

    CreateWindow(TEXT("button"), TEXT("Quit"),  
       WS_VISIBLE | WS_CHILD , 
       120, 300, 80, 25,   
       hWnd, (HMENU) 2, NULL, NULL);  

    CreateWindow(TEXT("STATIC"), lyrics, 
       WS_CHILD | WS_VISIBLE | SS_LEFT, 
       20, 20, 300, 230, 
       hWnd, (HMENU) 1, NULL, NULL); 

ответ

2

Попробуйте вместо этого:

static TCHAR *lyrics = TEXT("Dood"); 

С настройками компилятора вы, кажется, есть, TCHAR будут преобразованы в wchar_t.

+0

awsome! Большое спасибо. этот материал win32 очень смущает меня. – TimothyTech

+0

Обратите внимание, что вы на самом деле ничего не бросаете. Вы сейчас используете правильные типы. –

+1

Также обратите внимание, что переменные типы T будут разрешаться на основе параметров проекта «Набор символов с несколькими байтами Unicode Vs (MBCS)», а также функции win32, которые завернуты в макросы, т.е. макрос CreateWindow - это CreateWindowA или CreateWindowW, а TCHAR - либо char или wchar_t. –

Смежные вопросы