Transformer vos modules en Dll

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Transformer vos modules en Dll

Message par microdevweb »

Pourquoi? c'est évidement une question de choix cependant les Dll on l'avantage d'être compilées et donc même si par après certaines fonctions de PureBasic venaient à être modifiées ou supprimées la Dll continuera à fonctionner alors que le module pas.
Si il faut maintenant modifié tout le module pour le transformer en Dll, cela demandera beaucoup de travaille.

Je vous propose donc cette exemple tout simple et sans modifié le module.

Voici l'exemple d'un module simple

Code : Tout sélectionner

DeclareModule tst
      Declare AddMesg(title$,msg$)
      Declare ReadMsg()
EndDeclareModule
Module tst
      Structure smsg
            title$
            msg$
      EndStructure
      Global NewList myMsg.smsg()
      Procedure AddMesg(title$,msg$)
            AddElement(myMsg())
            With myMsg()
                  \title$=title$
                  \msg$=msg$
            EndWith
      EndProcedure
      Procedure ReadMsg()
            ForEach myMsg()
                  With myMsg()
                        MessageRequester(\title$,\msg$)
                  EndWith
            Next
      EndProcedure
EndModule
Et un exemple d'utilisation

Code : Tout sélectionner

XIncludeFile "tstModule.pbi"
tst::AddMesg("Bonjour","Comment allez-vous?")
tst::AddMesg("Et bien ","C'est bien ça !")
tst::ReadMsg()
Voici maintenant maintenant comment l'appelé depuis une Dll

Code : Tout sélectionner

XIncludeFile "tstModule.pbi"
ProcedureDLL AttachProcess(instance)
      
EndProcedure
ProcedureDLL tstAddMesg(title$,msg$)
      tst::AddMesg(title$,msg$)
EndProcedure
ProcedureDLL tstReadMsg()
      tst::ReadMsg()
EndProcedure
Et voici maintenant un exemple d'utilisation de la Dll après compilation

Code : Tout sélectionner

Import "tst.lib"
      tstAddMesg(title$,msg$)
      tstReadMsg()
EndImport
tstAddMesg("Bonjour","Comment allez-vous?")
tstAddMesg("Et bien ","C'est bien ça !")
tstReadMsg()
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Transformer vos modules en Dll

Message par Kwai chang caine »

Merci pour ce petit tuto
Les DLL c'est une des raisons de mon choix de PB
Et j'ai pas encore eu le loisir d'utilisé les modules, bien que je trouve ça intéressant.
La liaison des deux peut être utile, ça me servira surement le jour voulu 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre