la DLL :
Code : Tout sélectionner
ProcedureDLL.l Addition(x.l, y.l)
ProcedureReturn x + y
EndProcedure
à compiler en mode "Shared DLL" (dans les Options de compilation -> format de l'executable)
l'appel de la DLL, nommée add.dll
Façon 1 : CallFunction()
Code : Tout sélectionner
If OpenLibrary(0, "add.dll")
Debug CallFunction(0, "Addition", 5, 6)
CloseLibrary(0)
EndIf
Façon 2 : CallFunctionFast()
Code : Tout sélectionner
If OpenLibrary(0, "add.dll")
*adr_fonction = GetFunction(0, "Addition")
Debug CallFunctionFast(*adr_fonction, 5, 6)
CloseLibrary(0)
EndIf
Façon 3 : Prototype
Code : Tout sélectionner
Prototype.l mon_Addition(x.l, y.l)
If OpenLibrary(0, "add.dll")
add.mon_Addition = GetFunction(0, "Addition")
Debug add(5, 6)
CloseLibrary(0)
EndIf
Façon 4 : Import (nécessite POUR COMPILER d'avoir le fichier add.lib produit lors de la compilation de la dll, pas besoin de distribuer le .lib ensuite.)
Code : Tout sélectionner
Import "add.lib"
Addition(x.l, y.l)
EndImport
Debug Addition(5, 6)
Voila, pour l'utilisation, sinon pour plus de précision et de complication, je te conseille d'aller lire en détail l'AIDE de purebasic à propose de "ProcedureDLL".
tu y trouveras des explications sur le chargement et l'initialisation qui devrait être à connaitre.
J'espère que tu as lu l'aide avant de poster ta demande... Parce que tout y est expliqué.