Los entornos de C++
El entorno Windows
1. Programas Win32
La plataforma Win32 pronto recibió el apoyo de C++, ya que Microsoft lanzó Visual C++ en 1992, uno de los primeros entornos integrados para este lenguaje. En aquel momento, muchos arquitectos estaban convencidos de las ventajas de utilizar un lenguaje de objetos similar a C para crear aplicaciones que se ejecutaran en entornos gráficos.
Sin embargo, programar una aplicación con ventanas sin un framework no es tarea fácil. No obstante, la plataforma Win32 ofrece varios formatos de aplicación: aplicaciones de consola, servicios de Windows, librerías dinámicas (DLL) y, por supuesto, aplicaciones gráficas con ventanas.
No existe un modelo de proyecto "Win64", ya que Windows sigue siendo un sistema de 32 bits. Sin embargo, Visual Studio puede compilar en modo de 64 bits desde un proyecto Win32.
a. Elección del modo de compilación
Para crear un proyecto, utilice el comando Archivo - Nuevo - Proyecto:

Desde el Administrador de configuración, el modo de compilación de 64 bits:

El siguiente programa es interesante; muestra que el tamaño de los tipos int y long es idéntico al de 32 bits.
printf("Programa compilado en modo 64 bits");
printf("tamaño int %d\n", sizeof(int));
printf("tamaño long %d\n", sizeof(long));

El modo de 64 bits recomienda que el compilador produzca instrucciones de microprocesador de 64 bits, pero esto no significa que los tipos se ajusten en consecuencia. En otras palabras, un cálculo sobre un tipo __int64 puede tardar más en 32 bits que en 64 bits, pero __int64 siempre sigue siendo de 64 bits e int sigue siendo de 4 bytes, sea cual sea el modo de compilación. Esta es una peculiaridad del compilador de Microsoft; otros compiladores se pueden comportar de forma diferente.
b. Cómo funcionan las aplicaciones en modo ventana en Win32
No hay ninguna diferencia estructural entre el ejecutable de consola y el de escritorio. Se trata de llamadas al sistema que activan el cambio al modo ventana.
Sin embargo, el funcionamiento de una aplicación con ventanas es bastante especial, ya que el programa debe reaccionar a las peticiones del usuario -clics del ratón, atajos de teclado, ventanas superpuestas, etc.-, así como a eventos externos como la reproducción de programas...
Aplicaciones
1. Crear una aplicación de dibujo Win32
Estamos utilizando el formato de aplicación Win32, que estudiamos en la sección Entorno Windows - Programas Win32 de este capítulo, para crear un programa capaz de mostrar dos tipos de dibujo generados por cálculo C++.
Nuestro proyecto se llama C++ WinUI.
El primer paso es añadir nuevas entradas Ver - Superficie y Ver - Fractal al menú de la aplicación. Para ello, abra el archivo de recursos y edite el menú IDC_CWINUI:

El carácter subrayado en las etiquetas de los menús se utiliza como atajo de teclado (también conocido como acelerador). Se obtiene precediendo la letra V, para el menú Ver (luego S y F respectivamente), de un signo &.
Para designar cada tipo de dibujo, se define una enumeración en el archivo C++ WinUI.cpp:
enum Visualizar { Superficie, Fractal } visualizar;
La función wWinMain() sustituye a la función main() tradicional. Es un posible lugar para inicializar la variable visualizar:
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: Situar aquí el código.
visualizar = Visualizar::Superficie;
La función WndProc() procesa los mensajes de la aplicación. Cada entrada del menú corresponde a una acción WM_COMMAND:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
LPARAM lParam)
{
switch (message)
{
case WM_COMMAND:
{
int wmId = LOWORD(wParam);
//...