Habilitando o STRICT
Ao definir o símbolo STRICT , você habilita recursos que exigem mais cuidado ao declarar e usar tipos. Isso ajuda você a escrever um código mais portátil. Esse cuidado extra também reduzirá o tempo de depuração. Habilitar STRICT redefine determinados tipos de dados para que o compilador não permita a atribuição de um tipo para outro sem uma conversão explícita. Isso é especialmente útil com o código do Windows. Erros ao passar tipos de dados são relatados em tempo de compilação em vez de causar erros fatais em tempo de execução.
Com o Visual C++, a verificação de tipo STRICT é definida por padrão.
Para definir STRICT em uma base arquivo por arquivo, insira uma instrução #define antes de incluir Windows.h:
#define STRICT
#include <windows.h>
Quando STRICT é definido, as definições de tipo de dados mudam da seguinte maneira:
- Tipos de identificador específicos são definidos como mutuamente exclusivos; por exemplo, você não poderá passar um HWND em que um argumento de tipo HDC é necessário. Sem STRICT, todos os identificadores são definidos como HANDLE, portanto, o compilador não impede que você use um tipo de identificador em que outro tipo é esperado.
- Todos os tipos de função de retorno de chamada (como procedimentos de caixa de diálogo, procedimentos de janela e procedimentos de gancho) são definidos com protótipos completos. Isso impede que você declare funções de retorno de chamada com listas de parâmetros incorretas.
- Os tipos de parâmetro e valor retornado que devem usar um ponteiro genérico são declarados corretamente como LPVOID em vez de como LPSTR ou outro tipo de ponteiro.
- A estrutura COMSTAT é declarada de acordo com o padrão ANSI.
Tópicos relacionados