Partilhar via


Restrições de atraso carregar DLLs

Há restrições sobre o carregamento de atraso de importações.

  • Não há suporte para importação de dados.Para solucionar esse problema é manipular explicitamente a importação de dados utilizando LoadLibrary (or GetModuleHandle depois que você sabe que o auxiliar de carregamento de atraso carregou a DLL) e GetProcAddress.

  • Não há suporte para o atraso carregando Kernel32.dll.Essa DLL é necessária para as rotinas de auxiliar de carregamento de atraso executar o atraso de carregamento.

  • Ligação de pontos de entrada são encaminhados não é suportado.

  • Carregamento de atraso de uma DLL pode não resultar no mesmo comportamento do processo se não houver inicializações por processo que ocorram no ponto de entrada da DLL carregados de atraso.Outros casos incluem estático TLS (armazenamento local thread), declarado usando __declspec(thread), que não é tratado quando a DLL é carregada por meio de LoadLibrary.TLS dinâmicos, usando TlsAlloc, TlsFree, TlsGetValue, and TlsSetValue, ainda está disponível para uso em um estático ou DLLs de atraso carregado.

  • Ponteiros de função estática (global) devem ser reinicializados para funções importadas após a primeira telefonar à função.Isso ocorre porque o primeiro uso do ponteiro de função apontará para a conversão intermediária.

  • Não é possível no momento para atrasar o carregamento de apenas a procedimentos específicos de uma DLL enquanto estiver usando o mecanismo de importação normal.

  • Não há suporte para convenções de chamada personalizadas (por exemplo, usando códigos de condição no x86 de arquiteturas).Além disso, você não pode usar tipos de dados de ponto flutuante em qualquer das rotinas auxiliares ou ganchos em máquinas RISC.Os registros de ponto flutuante não são salvos em qualquer plataforma.Se sua rotina auxiliar personalizado ou rotinas de interceptação usarem tipos de ponto flutuante, ele precisará completamente salvar e restauração o estado do ponto flutuante em máquinas com registro convenções com ponto flutuante de parâmetros de chamada.Tenha cuidado ao carregar a DLL do CRT se você chamar funções de CRT usam parâmetros de ponto flutuante em uma pilha de processador de dados numéricos (NDP) na função de ajuda de atraso.

Consulte também

Conceitos

Suporte de vinculador para DLLs carregadas de atraso