@ Hallo Klaus
DynamicallyLoadDLL
aus Beschreibung:
DynamicallyLoadDLL – chargement dynamique de DLL's inconnus de Panoramic
Contenu de la DLL:
handle_DLL% = dll_call1("LoadDLL",adr(nom$))
handle_DLLM handle identifiant la DLL chargée par la suite
nom$ string contenant le nom et le chemin de la DLL à charger
i% = dll_call1("UnLoadDLL",handle_DLLl%)
i% sans signification
handle_DLL% handle de la DLL à décharger
i% = dll_call2("TargetDLL",handle_DLL%,adr(funct$))
i% sans signification
handle_DLL% handle de la DLL contenant la fonction recherchée
fonct$ string contenant le nom de la fonction recherchée
i% = dll_call0("CallDLL0")
i% = dll_call1("CallDLL1",p1)
i% = dll_call2("CallDLL2",p1,p2)
i% = dll_call3("CallDLL3",p1,p2,p3)
i% = dll_call4("CallDLL4",p1,p2,p3,p4)
i% = dll_call5("CallDLL5",p1,p2,p3,p4,p5)
i% = dll_call6("CallDLL6",p1,p2,p3,p4,p5,p6)
i% valeur de retour de la function DLL appelée
p1…P6 paramètres à passer à la fonction DLL
On charge une DLL par LoadDLL de façon transparente pour Panoramic.
Ne pas oublier de la décharger avec UnLoadDLL à la fin – Panoramic ne le fera pas !
Pour appeler une fonction dans une telle DLL, il faut procéder et deux étapes: d'abord, il faut "pointer" la fonction par TargetDLL,
puis appeler le fonction pointée par CallDLL0…CallDLL6 en fonction du nombre de paramètres passés.
+++++++++++++++++++++++
@ Hallo Klaus
Ich habe den Sinn nicht verstanden. Ich dachte wir können mehrer DLL gemeinsam laden.
Leider kann ich kein Beispiel finden.
Wenn es deine Zeit erlaubt, könntes du noch mal erklären.
Severin
Zitat:
Diese DLL ermöglicht es Ihnen, dynamisch zu laden mehrere DLLs für den Einsatz mit Panorama-simulané.
Die einzige DLL wird dann von Panoramic DynamicallyLoadDLL geschafft, und das ist die DLL, die sich um alles kümmert.
Wir können nicht dynamisch hinzuzufügen imprte die DLL, die ich vorschlagen,
sondern auch DLLs aus anderen Quellen, einschließlich ... DLL-System als User32.dll
aus Beschreibung:
DynamicallyLoadDLL - das dynamische Laden von unbekannten Panoramic DLL
Inhalt der DLL:
handle_DLL dll_call1% = ("LoadDLL", addr ($ name))
handle_DLLM Griff Identifizierung der DLL durch folgende geladen
$ Name Zeichenfolge mit dem Namen und den Pfad der DLL geladen werden
i% = dll_call1 ("UnLoadDLL" handle_DLLl%)
i% bedeutungslos
handle_DLL% Griff der DLL zu entladen
i% = dll_call2 ("TargetDLL" handle_DLL% addr ($ funct))
i% bedeutungslos
handle_DLL% Griff der DLL, die die gewünschte Funktion
Funkt $ Zeichenfolge mit dem Namen der gewünschten Funktion
i% = dll_call0 ("CallDLL0")
i% = dll_call1 ("CallDLL1", p1)
i% = dll_call2 ("CallDLL2", p1, p2)
i% = dll_call3 ("CallDLL3", P1, P2, P3)
i% = dll_call4 ("CallDLL4", P1, P2, P3, P4)
i% = dll_call5 ("CallDLL5", P1, P2, P3, P4, P5)
i% = dll_call6 ("CallDLL6", P1, P2, P3, P4, P5, P6)
i% Rückgabewert aus der DLL-Funktion aufgerufen
P1 ... P6 Parameter an die DLL-Funktion übergeben
Es lädt eine DLL LoadDLL transparent zu Panoramic. Vergessen Sie nicht, am Ende mit UnLoadDLL entladen - Panorama geht nicht!
Zum Aufrufen einer Funktion in dieser DLL, muss er vor und zwei Schritte: Zunächst müssen wir "Punkt"-Funktion von TargetDLL,
dann rufen Sie die Funktion, auf die CallDLL0 CallDLL6 ... basierend auf der Anzahl der übergebenen Parameter.