Wie verwendet man eine DLL am saubersten?
In der PB Hilfe gibt ja gleich 3 Wege:
- Callfunction (nicht sauber)
- Import
- Prototypes
Bei Prototypes schon mal, dass die Autovervollständigung nicht mitspielt.
CallFunction fällt schon mal weg, das ist nicht Typensicher, der Compiler kann wederMacros hat geschrieben:Da drängt sich mir gerade die Frage auf:
Wie verwendet man eine DLL am saubersten?
In der PB Hilfe gibt ja gleich 3 Wege:Was sind die Vor und Nachteile?
- Callfunction (nicht sauber)
- Import
- Prototypes
Bei Prototypes schon mal, dass die Autovervollständigung nicht mitspielt.
Code: Alles auswählen
; Beispiel 1, herkömmlich, nicht empfohlen
If OpenLibrary(0, "user32.dll")
CallFunction(0, "MessageBoxA", 0, @"Text", @"Titel", #MB_OK)
CloseLibrary(0)
EndIf
; Beispiel 2, mit Prototypes
Prototype MessageBox(hWnd, Text.s, Titel.s, Flag = #MB_OK)
If OpenLibrary(0, "user32.dll")
MessageBox.MessageBox = GetFunction(0, "MessageBoxA")
MessageBox(0, "Text", "Titel")
CloseLibrary(0)
EndIf
; Beispiel 3, mit Import
Import "user32.lib"
MessageBoxA(hWnd, Text.s, Titel.s, Flag = #MB_OK)
EndImport
MessageBoxA(0, "Text", "Titel")
Rings hat geschrieben:ziert sich nich beim zitieren
DLL muß sich im Pfad (ProgramDir, Windows, System32 usw.) befinden!Deluxe0321 hat geschrieben:Mal so nebenbei eingestreut:
Wenn ich nun Import verwende, wie kann ich die dll z.b in einem anderen Verzeichnis liegen lassen?
Also in dieser Art:
Ordner\Programm.exe <-- Programm
Ordner\dll\meinedll.dll <-- Dll für Import
Grüße