Identificando funções em DLLs
A identidade de uma função de DLL consiste dos seguintes elementos:
Ordinal ou nome da função
Nome do arquivo DLL em que a implementação pode ser encontrada
Por exemplo, especificar a função MessageBox na User32.dll identifica a função (MessageBox) e sua localização (User32.dll, User32 ou user32). A interface de programação de aplicativo (API do Windows) do Microsoft Windows pode conter duas versões de cada função que manipula caracteres e cadeias de caracteres: uma versão ANSI do caractere de 1 byte e uma versão Unicode do caractere de 2 bytes. Quando não especificado, o conjunto de caracteres, representado pelo campo CharSet, torna-se ANSI por padrão. Algumas funções podem ter mais de duas versões.
MessageBoxA é o ponto de entrada ANSI para a função MessageBox; MessageBoxW é a versão Unicode. Você pode listar os nomes de função para uma DLL específica, como user32.dll, por meio da execução de uma variedade de ferramentas de linha de comando. Por exemplo, você pode usar dumpbin /exports user32.dll
ou link /dump /exports user32.dll
para obter nomes de função.
Você pode renomear uma função não gerenciada para o que você quiser em seu código desde que você mapeie o novo nome para o ponto de entrada original na DLL. Para obter instruções sobre como renomear uma função de DLL não gerenciada no código-fonte gerenciado, consulte Especificando um ponto de entrada.
A invocação de plataforma permite que você controle uma parte significativa do sistema operacional chamando funções na API do Windows e outras DLLs. Além da API do Windows, há várias outras APIs e DLLs disponíveis para você por meio da invocação de plataforma.
A tabela a seguir descreve várias DLLs comumente usadas na API do Windows.
DLL | Descrição dos conteúdos |
---|---|
GDI32.dll | As funções de GDI (Graphics Device Interface) para o dispositivo de saída, tais como aquelas para desenho e para gerenciamento de fontes. |
Kernel32.dll | Funções do sistema de operacional de baixo nível para gerenciamento de memória e manipulação de recursos. |
User32.dll | Funções de gerenciamento do Windows para a manipulação de mensagens, temporizadores, menus e comunicações. |
Para obter a documentação completa sobre a API do Windows, confira o SDK da Plataforma. Para obter exemplos que demonstram como construir declarações baseadas no .NET a serem usadas com a invocação de plataforma, consulte Realizar marshaling de dados com a invocação de plataforma.