O ponto de entrada do servidor DLL Register não é encontrado em um local específico dentro da própria DLL como uma função nomeada. Em vez disso, é implicitamente definido pela exportação de uma função específica da DLL *com um nome específico *. O sistema operacional (especificamente, o utilitário `regsvr32.exe`) procura essa função com base em seu nome, não pesquisando através da estrutura interna da DLL.
O nome do ponto de entrada é sempre:
`dllRegisterServer` .
Portanto, para descobrir onde o "ponto de entrada do servidor de registro DLL" é *definido *, você precisa:
1.
Examine a tabela de exportação da DLL: Ferramentas como Walker dependência (depende.exe) ou espectadores de DLL similares podem mostrar uma lista de funções exportadas por uma DLL. Procure `dllRegisterServer` nessa lista. Se estiver presente, a ferramenta pode até mostrar seu endereço de memória na DLL. No entanto, simplesmente encontrar o nome não fornece o local do código -fonte.
2.
Examine o código -fonte da DLL (se você o tiver): Se você tiver o código -fonte da DLL, encontrará a função `dllRegisterServer` diretamente nos arquivos de origem. Será uma função declarada como:
`` `c ++
Stdapi dllRegisterServer (void);
`` `
(ou uma declaração semelhante, dependendo do idioma usado). O compilador lidará com sua exportação para a tabela de exportação da DLL.
Nota importante: A função `dllRegisterServer` está * apenas * presente nas DLLs projetadas para serem registradas no sistema. Muitas DLLs não precisam de registro e, portanto, não contêm essa função. Tentar registrar uma DLL que não possui essa função resultará em um erro.