![]() |
DLL starten
:?: Wie kann ich ein Programm als .dll kompilieren und dann auch starten(wie die Dialogboxen von Windows(Verknüpfung, Freigaben, ..))?
MfG gecko2000 |
|
Geht schon. Dazu liefert Windows die Programme rundll und rundll32 aus.
Zitat:
|
Hm. OK. Überredet.
.:cat:. |
Na ja, aber genau genommen wird die DLL nicht "gestartet". Man startet nur ein Progrramm, das eine angegebene DLL lädt und den Code an einem bestimmten Prozedureinsprungspunkt ausführt.
|
TweakUI (wers noch kennt) hat keine exe, nur eine DLL, und diese lässt sich starten wie eine exe
|
Wenn mich nicht alles täuscht, dann ist TweakUI eine CPL (auch ein DLL Typ), welche automatisch durch die Systemsteuerung gestartet wird. Ähnlich dem Verfahren von RunDLL32.
...:cat:... |
Also, unter Windows XP ist Tweak UI eine .exe :roll:
Früher war es allerdings tatsächlich eine Systemsteuerungsanwendung CPL. |
Moin Sakura,
wenn ich nicht sehr irre ist eine CPL eine Exe für einen speziellen Zweck (so wie auch SCR Dateien). Immerhin lässt so ein Applet ja auch direkt ausführen. Was RunDll(32) angeht: Eigentlich müsste das Programm, korrekter Weise, RunFunctionFromDLL heissen, aber da hat dann wieder die 8.3 Konvention für System DLLs zugeschlagen ;-) |
Zitat:
Delphi-Quellcode:
Die CPL Dateien werden auch über die RUNDLL32 ausgeführt:
// HIER STEHTS ***********
library Project2; uses CtlPanel, Unit1 in 'Unit1.pas' {AppletModule1: TAppletModule}; exports CPlApplet; {$R *.RES} // UND HIER STEHTS *********** {$E cpl} begin Application.Initialize; Application.CreateForm(TAppletModule1, AppletModule1); Application.Run; end.
Code:
...:cat:...
rundll32.exe shell32.dll,Control_RunDLL %1,%*
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz