Programación General => C/C++ => Mensaje iniciado por: maxstepin en Martes 20 de Octubre de 2009, 22:05
Título: codeblocks y Unicode
Publicado por: maxstepin en Martes 20 de Octubre de 2009, 22:05
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
Título: Re: codeblocks y Unicode
Publicado por: Eternal Idol en Martes 20 de Octubre de 2009, 23:11
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);
}
Título: Re: codeblocks y Unicode
Publicado por: maxstepin en Miércoles 21 de Octubre de 2009, 22:50
Eternal Idol, funciono! gracias por la ayuda, rapida y concisa. Porque tiene que estar delante de el include? :mellow:
Título: Re: codeblocks y Unicode
Publicado por: Eternal Idol en Miércoles 21 de Octubre de 2009, 23:15
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++
WINUSERAPI
int
WINAPI
MessageBoxA(
__in_opt HWND hWnd,
__in_opt LPCSTR lpText,
__in_opt LPCSTR lpCaption,
__in UINT uType);
WINUSERAPI
int
WINAPI
MessageBoxW(
__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
Título: Re: codeblocks y Unicode
Publicado por: maxstepin en Jueves 22 de Octubre de 2009, 19:06
OK, gracias. Nunca te acostaras sin saber una cosa mas. :lol: