Windiscretos
O Menor do Visual C + + para o Windows
O menor programa de uma linguagem, aqueles que mostram na tela expressões como "Oi!" ou "Oi Mundo!!!" são bastante difundidos entre os programadores. Aqueles que nunca fizeram um programa semelhante a este que atire a primeira listagem. No que diz respeito a utilidade, o menor programa serve somente para indicar que estamos começando a programar na linguagem em questão.
No caso de programas para Windows, estas afirmações continuam valendo. Um verdadeiro programa para Windows em linguagem C, aquele que expressa como funciona o Windows, custa em torno de 2 módulos e aproximadamente uma centena de linhas de código. Sendo feito em linguagem C++, através do AppWizard e da maneira mais simples possível, gastaremos em torno de 15 módulos (códigos fonte, headers, ícone etc) e 500 linhas de código.
Vamos então ao menor programa em Visual C++ (mas em linguagem C), que é muito semelhante ao conhecido "Oi Mundo!!!" da obra de Kernighan e Ritchie. A diferença fica por conta da interface Windows.
O "Menor" em Visual C++
1) O programa fonte MENOR.C
#include <Windows.h>
int PASCAL WinMain (HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR lpszCmd, int nWnd)
{
MessageBox(NULL,"Oi Mundo!!!","Menor", MB_OK | MB_ICONEXCLAMATION | MB-SYSTEMMODAL);
return (0);
}
2) O módulo de definição MENOR.DEF
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 1024
O programa até então visto não serve para muita coisa, porém, com alguns ajustes poderemos dar alguma utilidade para ele.
O "Um pouco maior e mais útil" em Visual C
Em alguns casos, ao alterarmos a configuração do Windows o mesmo nos dá a opção de restartá-lo. Mas em outros casos isto não acontece. Devemos então sair e executar novamente o Windows, para efetivar as alterações. Com algumas pequenas alterações no "Menor Programa" teremos disponível uma ferramenta que fará com que o Windows seja restartado de uma maneira menos incomoda.
Vamos ao código fonte então:
1) O programa fonte MENORUTI.C
#include <Windows.h>
int PASCAL WinMain (HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR IDszCmd, int nWnd)
{
if(MessageBox(NULL,"ReStartar ?", "ReStart", MB_YESNO|
MB_CONQUESTION | MB_SYSTEMMODAL)==IDYES)
ExitWindows (EW-RESTARTWINDOWS,0);
return (0);
}
2) O módulo de definição MENORUTI.DEF
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 1024
Os código apresentados não mostram a filosofia de desenvolvimento do Visual C++ para o Windows, mas são um exemplo de que também existem programas pequenos para o Windows e com esta ferramenta. Finalizando, os programas acima citados foram feitos sob a versão 1.0 do Visual C++.