![]() |
ShellExecute NonVCL Version
Hallo,
Zur zeit schreibe ich gerade an einer dll die mir unter anderem auch eine bestimmte exe starten soll. Natührlich müsste ich die dll so klein wie möglich halten, daher meine Frage. 1.) kann ich die ShellExecute Function auch NonVCL nutzen, wenn die restlichen Functionen auf VCL geschrieben wurden? 2.) Was sollte ich am besten darüber lesen bzw. was muss ich beachten? vielen dank :> |
Re: ShellExecute NonVCL Version
Shellexecute ist eine WinAPI Funktion und hat nichts mit der VCL zu tun. Deklariert ist sie in ShellAPI.pas
|
Re: ShellExecute NonVCL Version
ja aber wenn ich die ShellApi.pas einbinde, wird die dll direkt um ein vielfaches grösser. Und genau das möchte ich verhindern
|
Re: ShellExecute NonVCL Version
Moin Sharkx,
dann musst Du Dir die Funktion selber importieren. Wie man so etwas macht findest Du hier oft beschrieben. Such mal nach ![]() ![]() |
Re: ShellExecute NonVCL Version
Dann lad die DLL dynamisch und importier die Funktion zur Laufzeit. Wie das geht, findest du hier:
![]() |
Re: ShellExecute NonVCL Version
Vielen Dank für die zahlreichen Antworten :-)
Da es eine mIRC dll ist, wird sie auch dynamisch geladen. Werde mir mal die beiden Antworten von Lucky und Christian Seehase genauer anschaun und dann für die best mögliche Funktion entscheiden. |
Re: ShellExecute NonVCL Version
LOL. Was dir Christian vorgeschlagen hat, mache ich in meinem Demo.
|
Re: ShellExecute NonVCL Version
Moin Sharkx,
ob Du eine Funktion dynamisch oder statisch importierst hat nichts damit zu tun, dass Du sie in einer DLL verwenden willst. |
Re: ShellExecute NonVCL Version
@Luckie: Woher soll ich wissen was du in deiner Demo machst, wenn ich sie mir nicht angeschaut habe? Bzw. woher soll ich den Unterschied zwischen deiner Demo und Christians Vorschlag wissen, wenn ich beides weder gesehen noch gelesen hab? ;PPP
@Christian: Ob ich nun die dll dynamisch oder Statisch lade, änder ja nix an meinen Functionen. Darüber bin ich mir bewusst. Nur wusste ich nicht wie ich eine Function zur Laufzeit importiere ;) |
Re: ShellExecute NonVCL Version
Moin Sharkx,
nur Funktionen aus DLLs können dynamisch oder statisch importiert werden, nicht die DLLs. [EDIT] @Chewie: Hab's korrigiert ;-) [/EDIT] |
Re: ShellExecute NonVCL Version
Zitat:
|
Re: ShellExecute NonVCL Version
Den Satz versteh ich nu auch nit *gg*
Ich kann doch eine dll dynamisch oder statisch laden, richtig? Ich kann auch eine function zur Laufzeit importieren, richtig? Also wo hängts? :) |
Re: ShellExecute NonVCL Version
Es ist wohl nur eine Sache der Terminologie:
Du lädst eine DLL, um daraus eine Funktion zum importieren. Du importierst aber keine DLL. Der Unterschied zwischen stat. und dynamsichem Import ist der, das im ersten Falle dir der Compiler die Arbeit abnimmt, allerdings hast du hier keine Möglichkeit zu überprüfen, ob die Funktion wirklich in der DLL existiert. Ist dieser Fall möglich, solltest du auf den dynamischen Import zurückgreifen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 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