Page 1 sur 1

Problème avec Bibliothèque (Librairie)

Publié : mar. 22/sept./2020 21:57
par Shadow
Bonjour,

J'essaye de faire une librairie d'un code mais quand je l'utilise avec PB, ça affiche ça et je sais pas d'ou ça viens:
https://drive.google.com/file/d/1RTpX9W ... sp=sharing

Re: Problème avec Bibliothèque (Librairie)

Publié : mer. 23/sept./2020 8:45
par microdevweb
Salut Shadow,

Ce type de message survient
  • A cause de l'anti virus
  • Un partie du soft (exemple dll) est occupée par un autre procesus
Maintenant sans le code et la structure du programme difficile à dire

Re: Problème avec Bibliothèque (Librairie)

Publié : sam. 26/sept./2020 14:38
par Shadow
Salut, merci.

Pas moyen de faire marcher, je suis bloqué !
C'est pour le module Editors Factory, je n'arrive pas à faire fonctionner la librairie :(

Re: Problème avec Bibliothèque (Librairie)

Publié : sam. 26/sept./2020 17:57
par G-Rom
microdevweb a écrit :Salut Shadow,

Ce type de message survient
  • A cause de l'anti virus
  • Un partie du soft (exemple dll) est occupée par un autre procesus
Maintenant sans le code et la structure du programme difficile à dire
ni l'un , ni l'autre, erreur d'édition de lien, manque une fonction tout simplement. Le message est explicite.

Re: Problème avec Bibliothèque (Librairie)

Publié : dim. 27/sept./2020 2:15
par Shadow
Merci, Mouais bon en gros la lib bha tempi, c'est le gros bordel pour créer une lib !
Donc peu pas créer de lib, peux pas crée de DLL, MDR !

Re: Problème avec Bibliothèque (Librairie)

Publié : dim. 27/sept./2020 7:57
par Micoute
Bonjour Shadow,

tu fais comme l'exemple que j'ai fait, et tu verras que ça fonctionne parfaitement

Code : Tout sélectionner

;Mettre l'option Compilateur "Shared Dll"
;Puis "Créer un exécutable" et donner le nom de son choix

ProcedureDLL Salut()
    MessageRequester("Bonjour", "Bonjour de la part de Micoute !", 0)
  EndProcedure
Code pour exécuter:

Code : Tout sélectionner

If OpenLibrary(0, "Bonjour.dll")
  CallFunction(0, "Salut")
  CloseLibrary(0)
EndIf

Re: Problème avec Bibliothèque (Librairie)

Publié : dim. 27/sept./2020 13:32
par Shadow
Micoute, c'est pas aussi simple que ça non, j'ai tout un code hein ;)
Et ça ne fonctionne pas, probablement parce que je dois refaire des fonctions qui ont plusieurs paramètres.... ce que je ne ferais pas !
Je pensais pas que c'était aussi dur de créer une lib avec PB !

Re: Problème avec Bibliothèque (Librairie)

Publié : lun. 28/sept./2020 7:25
par Micoute
J'espère qu'après mon opération de ma carotide droite, je retrouverai mes facultés et si c'est le cas, je promets de t'aider du mieux que je le pourrai.

Re: Problème avec Bibliothèque (Librairie)

Publié : mar. 29/sept./2020 9:55
par microdevweb
Le problème avec la création de dll c'est surtout le débogage, on peut passer par des fonctions temporaires que l'on appellent ensuite. Cela peut facilité le débogage puisque l'on teste en premier les fonctions normalement.

Image

code du module

Code : Tout sélectionner

DeclareModule TESTE
  Declare _func_a(value)
  Declare.s _func_c(name.s)
EndDeclareModule

Module TESTE
  Procedure _func_a(value)
    ProcedureReturn value * 2
  EndProcedure
  
  Procedure.s _func_c(name.s)
    ProcedureReturn "Hello "+name
  EndProcedure
  
EndModule
code de la dll

Code : Tout sélectionner

IncludeFile "MODULE.pb"

ProcedureDLL func_a(value)
  ProcedureReturn TESTE::_func_a(value)
EndProcedure

ProcedureDLL.s func_c(name.s)
  ProcedureReturn TESTE::_func_c(name)
EndProcedure
  
code du teste

Code : Tout sélectionner

If OpenLibrary(0,"TESTE.dll")
  Debug CallCFunction(0,"func_a",5)
  Debug PeekS(CallCFunction(0,"func_c",@"microdevweb"))
EndIf