Bannière

Menu

  Accueil
  Forum (Partagé)

PureBasic

  Présentation
  Tutoriaux
      Mode Console
      Mode Screen
      Mode Window
      Autres
  Téléchargements

3D Games-Creator

  Présentation
  Tutoriaux
  Téléchargements

Autres

  Téléchargements
  Partenaires
  Liens
  Contact
  Livre d'Or
  News Letter

DLL (Librairie dynamique)

Voici les parties :

Création des DLL
Utilisation des DLL

 

     Création des DLL:

     PureBasic permet de créer des DLL très facilement. Tout d'abord NE PAS OUBLIER d'aller dans le menu Compilateur => Options de compilation => Onglet Format du programme sélectionner Shared Dll puis OK pour spécifier au compilateur qu'il s'agit d'une DLL et non d'un exécutable.

; Tutorial sur la création des DLL
; http://www.oliv.fr.fm

ProcedureDLL AttachProcess(Instance) ; Est appelé au chargement de la DLL (OpenLibrary), toutes les initialisations direct X doivent être déclarées ici.
  InitSprite() ; Initsprite()
  MessageRequester("Bonjour","Le chargement de la DLL est effectué")
EndProcedure

ProcedureDLL DetachProcess(Instance) ; Est appelé au déchargement de la DLL (CloseLibrary).
  MessageRequester("Aurevoir","La DLL a été déchargée") ;
EndProcedure

ProcedureDLL AttachThread(Instance) ; Est appelé quand un Thread est créé.
EndProcedure

ProcedureDLL DetachThread(Instance) ; Est appelé quand un Thread est supprimé.
EndProcedure

; C'est ici que commence les fonctions que l'on veut créer.
ProcedureDLL Message(Message.s,x.w,y.w,Taille_Ecran_x.w,Taille_Ecran_y.w,Profondeur.w,Temps.w) ; On cré une ProcedureDLL comme une procedure normale.
  Resultat.s
 
OpenScreen(Taille_Ecran_x,Taille_Ecran_y,Profondeur,"Message DLL")
   
StartDrawing(ScreenOutput())
     
Locate(x,y)
     
DrawText(Message)
   
StopDrawing()
   
FlipBuffers()
   
Delay(Temps)
 
CloseScreen()
    Resultat=
"Fini"
 
ProcedureReturn(Resultat)
EndProcedure

 

Utilisation des DLL:

     Ne PAS OUBLIER de vérifier si le format du programme est bien Windows et non Shared Dll.

; Tutorial sur la création des DLL
; http://www.oliv.fr.fm

OpenLibrary(0,"Exemple.dll") ; Ouvre la DLL exemple (Si elle n'est pas avec la sauvegarde PB ou l'exe de votre programme, précisez le chemin d'accès).
CallFunction(0,"Message","Hello World",50,100,640,480,32,2000) ; Appelle la fonction Message dans la DLL numero 0 et suivent tous les paramètres.
CloseLibrary(0) ; Ferme la DLL.

     Un moyen plus rapide d'appeler une fonction est d'utiliser IsFunction() et CallFunctionFast()

; Tutorial sur la création des DLL
; http://www.oliv.fr.fm

OpenLibrary(0,"Exemple.dll") ; Ouvre la DLL exemple.
Pointeur_Fonction_Message.l =
IsFunction(0,"Message") ; Renvoi le pointeur de la DLL.
CallFunctionFast(Pointeur_Fonction_Message,"Hello World",50,100,640,480,32,2000) ; S'utilise comme CallFunction() mais au lieu de mettre le numero de la DLL et le nom de la fonction on utilise le pointeur renvoyé par IsFunction().
CloseLibrary(0) ; Ferme la DLL.

© Oliv.fr.fm - Design de PourTaPageWeb (Visitez le site)