Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Kde nájsť vstupný bod registračného servera DLL?

Vstupný bod servera DLL Register sa nenachádza na konkrétnom mieste v samotnom DLL ako pomenovaná funkcia. Namiesto toho je implicitne definovaný exportom konkrétnej funkcie DLL *s konkrétnym menom *. Operačný systém (konkrétne `RegSVR32.Exe` Utility) hľadá túto funkciu na základe jej názvu, nie vyhľadávaním internej štruktúry DLL.

Názov vstupného bodu je vždy: `DllRegisterServer` .

Preto, aby ste zistili, kde je „vstupný bod servera DLL registrovaný“ *definovaný *, musíte:

1. Preskúmajte exportnú tabuľku DLL: Nástroje ako závislosť Walker (závislé.exe) alebo podobných divákov DLL vám môžu ukázať zoznam funkcií exportovaných DLL. V tomto zozname vyhľadajte `DllregisterServer`. Ak je prítomný, tento nástroj vám môže dokonca ukázať jeho pamäťovú adresu v rámci DLL. Jednoducho zistenie názvu vám však nedáte umiestnenie zdrojového kódu.

2. Preskúmajte zdrojový kód DLL (ak ho máte): Ak máte zdrojový kód pre DLL, nájdete funkciu `DLLReGisterServer priamo v zdrojových súboroch. Bude to funkcia vyhlásená za:

`` C ++

Stdapi DllRegisterServer (void);

`` `

(alebo podobné vyhlásenie v závislosti od použitého jazyka). Kompilátor potom zvládne svoj export do exportnej tabuľky DLL.

Dôležitá poznámka: Funkcia `DllRegisterServer` je * iba * prítomná v DLL navrhnutých na registráciu v systéme. Mnoho DLL nepotrebuje registráciu, a preto túto funkciu neobsahuje. Pokus o registráciu DLL, ktorý nemá túto funkciu, bude mať za následok chybu.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené