Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[ WinAPI ] MessageBox

Ostatnio zmodyfikowano 2011-05-14 15:07
Autor Wiadomość
Mrowqa
Temat założony przez niniejszego użytkownika
[ WinAPI ] MessageBox
» 2011-05-13 20:30:11
Witam!

Mam mały problem, używając tej instrukcji
MessageBox( NULL, "To jest wiadomość.", "Wiadomość", MB_ICONINFORMATION | MB_OKCANCEL );
 wywala mi błąd, że nie może skonwertować const char* do LPCWSTR ( wcześniej nie miałem tego problemu ... ). Rzutowanie nic nie daje - wyskakują mi chińskie znaczki :P Jest to w funkcji WinMain, we zwykłej main normalnie działało ...

Pozdrawiam,
Mrowqa
P-33012
szyx_yankez
» 2011-05-13 20:45:05
U Mnie pod MinGw g++ 4.5 wszystko poprawnie się kompiluje i działa.
Z jakiego kompilatora korzystasz?
P-33014
Mrowqa
Temat założony przez niniejszego użytkownika
» 2011-05-13 20:46:16
Właśnie tera zamierzałem dopisać to :D
Mam Visual C++ 2010 Express

EDIT:
znalazłem rozwiązanie:
C/C++
#include <tchar.h>
//...
_T( "String" )
//...
http://www.coderscity.pl/ptopic31103.html
P-33015
malan
» 2011-05-13 21:39:20
Tu chodzi o kodowanie. Domyślnie (zapewne) masz ustawione UNICODE (np. UTF-8), a UNICODE to
wchar_t
, czyli (w WinAPI)
WCHAR
.
LPCWSTR
 to
WCHAR *
.
Rozwiązań masz kilka:
1. Zmienić kodowanie na ANSII,
2.
C/C++
#ifdef UNICODE
#undef UNICODE
#endif
#include <Windows.h>
Aczkolwiek to rozwiązanie nie jest dobre...
3.
MessageBox( NULL, L"To jest wiadomość.", L"Wiadomość", MB_ICONINFORMATION | MB_OKCANCEL );
 i zamiast
char *, char[]
 stosować
WCHAR *, WCHAR[]
 (lub TCHAR- w zależności od kodowania TCHAR to
char
 (CHAR w WinAPI) dla ANSII lub
wchar_t
 (WCHAR w WinAPI) dla UNICODE.

P-33017
Mrowqa
Temat założony przez niniejszego użytkownika
» 2011-05-14 15:07:58
Dzięki @malan ;) Sprawdzę to z eLką .. ciekawe czy też wejdą arabskie znaki :P

Działa ;)
P-33022
« 1 »
  Strona 1 z 1