Escolar Documentos
Profissional Documentos
Cultura Documentos
Tipos de variáveis
• Na API do Windows e no WDK são utilizados variáveis do tipo
LPCVOID, PUCHAR, ...
• Estes tipos correspondem aos tipos base de C/C++ decorados com
modificadores e significam:
L – apontador longo (equivale ao modificador ‘far’ se necessário)
P – apontador (equivale ao ‘*’)
C – constante (equivale ao modificador ‘const’)
U – sem sinal (equivale ao modificador ‘unsigned’)
...
• Exemplo
‘LPCVOID’ equivale a ‘const void *’
• Estes tipos estão definidos na secção “Windows Data Types” do
MSDN (http://msdn.microsoft.com/en-
us/library/aa383751(VS.85).aspx)
Declaração de funções
• Uma função pode aparecer no código de um programa de três formas:
– Declaração: definição do nome e o tipo dos seus parâmetros, e.g.
int func2(int, int*);
– Invocação: utilização da função para realizar a respectiva operação sobre os argumentos
concretos, e.g.
c = func2(a, &b);
– Implementação: corpo da função que contém o código que implementa a respectiva
operação, e.g.
int func2(int a, int *b) {
int resultado = a+(*b);
return resultado;
}
• Em cada ficheiro ‘.c’ ou ‘.cpp’:
– a invocação tem que aparecer depois da declaração ou da implementação (senão o
compilador não conhece a função)
– a declaração é necessária sempre que a implementação apareça depois da invocação
• Declaração e Implementação
– a inclusão pode ser directa ou através de ficheiros ‘.h’
– a implementação pode estar num ficheiro separado, que é ligado aos outros pelo linker (erro
de ‘linkage’ quando não está acessível)