Identificando funções em DLLs
A identidade de uma função DLL consiste nos seguintes elementos:
Nome da função ou ordinal
Nome do arquivo DLL no qual a implementação pode ser encontrada
Por exemplo, especificar a função MessageBox no User32.dll identifica a função (MessageBox) e sua localização (User32.dll, User32 ou user32). A interface de programação de aplicativos do Microsoft Windows (API do Windows) pode conter duas versões de cada função que manipula caracteres e cadeias de caracteres: uma versão ANSI de caracteres de 1 byte e uma versão Unicode de caracteres de 2 bytes. Quando não especificado, o conjunto de caracteres, representado pelo campo, assume como CharSet padrão ANSI. 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 nomes de função para uma DLL específica, como user32.dll, executando uma variedade de ferramentas de linha de comando. Por exemplo, você pode usar dumpbin /exports user32.dll
ou link /dump /exports user32.dll
obter nomes de funções.
Você pode renomear uma função não gerenciada para o que quiser dentro do seu código, desde que mapeie o novo nome para o ponto de entrada original na DLL. Para obter instruções sobre como renomear uma função DLL não gerenciada no código-fonte gerenciado, consulte Especificando um ponto de entrada.
A invocação de plataforma permite controlar uma parte significativa do sistema operacional chamando funções na API do Windows e outras DLLs. Além da API do Windows, existem 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 do Índice |
---|---|
GDI32.dll | Funções GDI (Graphics Device Interface) para saída de dispositivos, como as de desenho e gerenciamento de fontes. |
Kernel32.dll | Funções de baixo nível do sistema operacional para gerenciamento de memória e manipulação de recursos. |
User32.dll | Funções de gerenciamento do Windows para manipulação de mensagens, temporizadores, menus e comunicações. |
Para obter a documentação completa sobre a API do Windows, consulte o Platform SDK. Para exemplos que demonstram como construir . Declarações baseadas em NET a serem usadas com invocação de plataforma, consulte Marshalling Data with Platform Invoke.