Je veux apprendre a faire des DLLs

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Je veux apprendre a faire des DLLs

Message par SPH »

Salut,

Je souhaiterais faire des DLLs. Une ame charitable pourrait il poster un cours (qui ne restera pas lettre morte)

mci

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Je veux apprendre a faire des DLLs

Message par graph100 »

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é.
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Répondre