Cikk azonosítója: 164787 - Utolsó ellenőrzés: 2005. október 4. - Verziószám: 4.2 Információ: A Windows Rundll és Rundll32 felülete
A lap tartalmaÖsszefoglaló
A Microsoft Windows 95, a Windows 98 és a Windows Millennium Edition (Me) rendszer tartalmaz egy Rundll.exe és egy Rundll32.exe nevű parancssori segédprogramot, melyek lehetővé teszik 16 vagy 32 bites DLL-fájlokból exportált függvények hívását. A Rundll és a Rundll32 program azonban nem engedélyezi bármely exportált függvény bármely DLL-fájlból történő hívását. A segédprogramokkal nem tudja például meghívni a rendszer DLL-fájljaiból exportált Win32 API-hívásokat. A program csak arra ad lehetőséget, hogy csak a kifejezetten az általuk történő hívásra írt DLL-fájlokból hívjon függvényeket. Ez a cikk részletesen ismerteti a Rundll és a Rundll32 programnak a fent felsorolt Windows operációs rendszerek alatt történő használatát.
A Microsoft Windows NT 4.0, a Windows 2000 és a Windows XP rendszer csak a Rundll32 eszközt tartalmazza. A fenti platformok egyike sem támogatja a Rundll program (a Win16 segédprogram) használatát. A Rundll és a Rundll32 segédprogramot a Microsoft eredetileg csak belső használatra tervezte. Az általuk kínált szolgáltatások azonban elég általánosak ahhoz, hogy most már mindenki számára elérhetők legyenek. Ne feledje, hogy a Windows NT 4.0 operációs rendszer csak a Rundll32 segédprogramot tartalmazza, és csak a Rundll32 használatát támogatja. További információA Rundll és a Rundll32 összevetéseA Rundll 16 bites DLL-fájlok, a Rundll32 pedig 32 bites DLL-fájlok betöltésére és futtatására használható. Ha a Rundll vagy a Rundll32 programot nem a megfelelő típusú DLL-fájlhoz használja, előfordulhat, hogy a fájl futtatása hibaüzenet nélkül sikertelenül végződik.A Rundll parancssoraA Rundll parancssora a következő:
A Rundll működéseA Rundll a következő lépéseket végzi el:
A DLL kialakításaA DLL-ben a <BelépésiPont> függvényt a következő prototípus alapján kell definiálni:16 bites DLL-fájl esetén:
hwnd – ablakleíró, melyet főablakként kell használni bármely, a DLL-fájl által létrehozott ablakhoz hinst – a DLL példányának leírója lpszCmdLine – a DLL által értelmezendő ASCIIZ parancssor nCmdShow – a DLL-fájl ablakai megjelenítésének leírása hwnd = (szülőablak leírója) hinst = a SETUPX.DLL HINSTANCE típusú argumentuma lpszCmdLine = "132 C:\WINDOWS\INF\SHELL.INF" nCmdShow = (a CreateProcess függvénynek átadott nCmdShow argumentum) A Windows 95 és a Windows NT közötti különbségekkel kapcsolatos speciális megjegyzésekWindows NT, Windows 2000 és Windows XP rendszeren a Rundll32.exe működése kis mértékben eltér annak érdekében, hogy képes legyen a Unicode formátumú parancssorok kezelésére.A Windows NT először megkísérli beolvasni a <BelépésiPont>W függvény címét a GetProcAddress függvénnyel. Ha megtalálja ezt a belépési pontot, akkor a következő prototípust feltételezi: Ha a Windows NT nem találja a <BelépésiPont>W belépési pontot, akkor a GetProcAddress függvénnyel beolvassa a <BelépésiPont>A és a <BelépésiPont> címét. Ha megtalálja valamelyiket, akkor a rendszer ANSI formátumú belépési pontnak tekinti, és a Windows 95, 98 vagy Millennium Edition rendszerrel megegyező módon kezeli azt. Ezért ha a DLL-fájlt az ANSI formátumot támogató Windows 95 rendszeren és a UNICODE formátumot támogató Windows NT, 2000 vagy XP rendszeren is futtatni szeretné, akkor a BelépésiPontW és a BelépésiPont függvényt is exportálnia kell. A Windows NT, 2000 és XP rendszer a BelépésiPontW függvényt hívja UNICODE formátumot támogató parancssorral, a Windows 95, 98 és Millennium Edition rendszer pedig az BelépésiPont függvényt ANSI formátumot támogató parancssorral. Hivatkozások
A Rundll használatával kapcsolatos példát találhat a következő, a Vezérlőpultról elérhető kisalkalmazások Windows 95 rendszeren a Rundll parancssori segédprogrammal történő indítását ismertető cikkben: 135068
(http://support.microsoft.com/kb/135068/HU/
)
Útmutató: A Vezérlőpultról elérhető kisalkalmazások indítása Windows 95, 98 vagy WinNT rendszeren (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.) A cikkben található információ a következő(k)re vonatkozik:
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók. | Egyéb források További támogatás
KözösségA cikk fordítása
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
A lap tetejére