Chamando uma função DLL

Embora chamar funções DLL não gerenciadas seja quase idêntico a chamar outro código gerenciado, há diferenças que podem fazer com que as funções DLL pareçam confusas no início. Esta seção apresenta tópicos que descrevem alguns dos problemas incomuns relacionados a chamadas.

As estruturas retornadas de chamadas de invocação de plataforma devem ser tipos de dados que tenham a mesma representação em código gerenciado e não gerenciado. Esses tipos são chamados de tipos "blittable" porque não exigem conversão (consulte "Blittable" e "Non-Blittable" Types). Para chamar uma função que tem uma estrutura não-blittável como seu tipo de retorno, pode-se definir um tipo auxiliar blittável do mesmo tamanho que o tipo não-blittável e converter os dados após a função retornar.

Na presente seção

Estruturas de passagem Identifica os problemas de passagem de estruturas de dados com um layout pré-definido.

Funções de callback Fornece informações básicas sobre funções de callback.

Como: Implementar Funções de Chamada de Retorno Descreve como implementar funções de chamada de retorno em código gerido.

Consumo de Funções DLL Não Geridas Descreve como chamar funções DLL não geridas usando platform invoke.

Organização de Dados com Platform Invoke Descreve como declarar parâmetros de método e passar argumentos para funções exportadas por bibliotecas não geridas.