Page 1 sur 1

Transformer vos modules en Dll

Publié : ven. 13/nov./2015 13:18
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()

Re: Transformer vos modules en Dll

Publié : ven. 13/nov./2015 20:40
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)