Programación General > C/C++
codeblocks y Unicode
(1/1)
maxstepin:
hola.
el siguiente codigo:
--- Código: C ---int WINAPI WinMain(HINSTANCE actual, HINSTANCE previa, LPSTR parametros, int cmd){ MessageBoxA(NULL, "ascii", NULL, 0); MessageBoxW(NULL, L"unicode", NULL, 0); MessageBox(NULL, "cual", NULL,0);}
lo he probado bajo vc++ sin problemas, puedo cambiar la configuracion del proyecto para multibyte o unicode para poder especificar una cosa u otra.
Pero, en codeblocks no encuentro tal opcion. Donde puedo configurar codeblocks para que el programa salga unicode?
no sera poniendo:
--- Código: C ---#define UNICODE al principio del fichero? yo ya lo he probado y no funciona.
gracias adelantadas
Eternal Idol:
Los #define tienen que estar antes del #include de windows.h para que funcione.
--- Código: C++ ---#define UNICODE#define _UNICODE #include <windows.h>#include <tchar.h> int WINAPI WinMain(HINSTANCE actual, HINSTANCE previa, LPSTR parametros, int cmd){ MessageBox(NULL, _T("cual"), NULL,0);}
maxstepin:
Eternal Idol, funciono! gracias por la ayuda, rapida y concisa. Porque tiene que estar delante de el include? :mellow:
Eternal Idol:
De nadas :comp:
Las funciones de la API estan declaradas en windows.h (o en alguna otra cabecera que esta incluya directa o indirectamente), por ejemplo MessageBox sera MessageBoxA sino esta definido UNICODE/_UNICODE y MessageBoxW si lo esta. Extracto del SDK:
--- Código: C++ ---WINUSERAPIintWINAPIMessageBoxA( __in_opt HWND hWnd, __in_opt LPCSTR lpText, __in_opt LPCSTR lpCaption, __in UINT uType);WINUSERAPIintWINAPIMessageBoxW( __in_opt HWND hWnd, __in_opt LPCWSTR lpText, __in_opt LPCWSTR lpCaption, __in UINT uType);#ifdef UNICODE#define MessageBox MessageBoxW#else#define MessageBox MessageBoxA#endif // !UNICODE
maxstepin:
OK, gracias. Nunca te acostaras sin saber una cosa mas. :lol:
Navegación
Ir a la versión completa