2009-04-07 16 views
6

Cuando creé mi proyecto de estudio visual, de manera predeterminada forcé el uso de cadenas anchas para todas las funciones que toman cadenas de caracteres. MessageBox(), por ejemplo, toma un LPCWSTR en lugar de un const char *. Si bien entiendo que es ideal para aplicaciones multilingües y portátiles, es completamente innecesario para mi pequeña aplicación simple. Francamente, es más una pena escribir constantemente TEXTO() en todas mis cuerdas.Cómo convertir un proyecto de Visual Studio de usar cadenas anchas a cadenas normales

¿Existe alguna opción de compilación, definición o configuración de proyecto que pueda modificar para solucionar esto en mi proyecto de Visual Studio?

Respuesta

14

Haga clic derecho sobre su proyecto -> Propiedades y luego ir a la siguiente elemento del árbol:

Propiedades de configuración -> General

Para Unicode Seleccionar:
Uso Unicode cadenas de caracteres

Para la selección de bytes múltiple normal:
Uso de caracteres de varios bytes Establecer

Cuando se pone TEXT() o _T() alrededor de sus cadenas, que está haciendo que sea compatible con las dos opciones de cadenas de caracteres. Si selecciona Use multi-byte character set, entonces no necesita nada alrededor de sus cadenas. Si selecciona Use unicode character set, necesita al menos L delante de sus cadenas.

Al seleccionar Use Unicode Character Strings, también está utilizando de manera predeterminada todas las API de Win32 que terminan en W. Ejemplo: MessageBox se mapea a MessageBoxW.

Cuando selecciona Use multi-byte character set, también utiliza de manera predeterminada todas las API de Win32 que terminan en A. Ejemplo: MessageBox se mapea en MessageBoxA.

1

Vale la pena señalar que se puede declarar explícitamente los literales de cadena de caracteres anchos de la forma:

WCHAR *s = L"Hello Wide World."; 

que requiere menos pulsaciones que el TEXTO macros() o _T(), pero que hará que un carácter ancho cadena incluso si UNICODE no está definido.

Cuestiones relacionadas