Les DLL ...!

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Les DLL ...!

Message par Twix »

Salut,

dans un topic dans les rapports de bugs, dans l'aide de PB etc... on dit "en dehors des procédures, tu n'écriras pas", "les globales ne marcheront pas" sur l'écriture de DLL.

Alors, moi j'ai écris plein de choses à l'éxtérieur de ma DLL (pas de Global) mais des structures, des tableaux et des Declare (parce que j'ai la flemme de mettre les procedures dans l'ordres :oops: )

Donc si je suis bien ma logique, il faudrait que je mette le tout dans une procedure ?
Note : pour les tests avec le débugueur, ça marchait tranquille. J'y ai même compilé une fois, mais je n'ai pas testé :oops: .

++
Twix : au secours, vlà les bugs qu'arrivents !!
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

si si global fonctionne pour une dll...

Dri
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

je crois que tout ce qui est declaration, tableau ect ..
ya pas de probleme , c'est les commandes basic , qu'il ne faut pas ecrire en dehors des procedures , mais toute la preparation du prg , ya pas de soucis , en principe .... :? Confirmation ? 8O
Dernière modification par Backup le mer. 02/nov./2005 10:22, modifié 1 fois.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Il faut que tu mette les structures dans chaque procédure je crois... :?
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message par Twix »

merci bcp,

je me débouillerai si jamais ça marche pas lors des tests. y'a pas une procédure avec un nom spéciale qui séxécute toute seule au chargement de la dll ? je peut peut être inclure toutes les déclarations la dedans...

d'ailleurs, je vais essayer tout de suite, rapidement...
Twix : au secours, vlà les bugs qu'arrivents !!
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

pour les fonctions particulières il faut regarder dans la doc. pour le reste on peut mettre ce qu'on veut à l'extérieur des procédures sauf du code qui s'exécute.

donc on peut mettre :
structures
globales
datasections
déclarations
constantes
etc

Dri
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message par Twix »

merci (bien que je ne doute pas de toi ni de la doc, je vais quan meme verifier......)
Twix : au secours, vlà les bugs qu'arrivents !!
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Les globales ne sont globales qu'à l'intérieur de le dll, c'est à dire qu'elles ne sont visibles que par les procédures qui sont dans la dll.

Elle ne sont pas visible par le programme qui l'appelle.
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message par Twix »

je sais bien, le seul moyen sûr de communiquer avec un programme, dans une dll, c'est les paramètres et les ProcedureReturn.
Twix : au secours, vlà les bugs qu'arrivents !!
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

@Twix : Exactement :)
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message par Twix »

Zut, j'arrive pas à envoyer mon code...

Bon, ben les deux fichiers se trouvent à cette adresse : http://twix.celeonet.fr/code
Les fichiers s'appellent structdll1.pb et structdll2.pb. Le premier, c'est la DLL, le deuxième c'est le programme.

Essayez, moi je n'ai rien vu de ce que ça devait être...
Twix : au secours, vlà les bugs qu'arrivents !!
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

Il faut initialiser les variable, structures ect... dans AttachProcess (qui est appelé quand la dll est ouverte) :

Code : Tout sélectionner

ProcedureDLL AttachProcess(Instance)

  Global astring.s
  Dim alotofstring.s(5)
  Structure stru
    s.s
    b.b
    l.l
  EndStructure
  Dim astructure.StrU(5)

EndProcedure

ProcedureDLL DetachProcess(Instance)

EndProcedure

ProcedureDLL set(value.s)
  astring=value
  For a=0 To 4
    alotofstring(a)=value
  Next a
  For a=0 To 4
    astructure(a)\s=value
    astructure(a)\b=1
    astructure(a)\l=180124
  Next a
EndProcedure

ProcedureDLL get()
  
  MessageRequester("Test : Global",astring)
  For a=0 To 4
    MessageRequester("Test : Tableau",alotofstring(a))
  Next a
  
  For a=0 To 4
    MessageRequester("Test : Structure",astructure(a)\s)
    MessageRequester("Test : Structure","Devrait être égal à 1 : "+Str(astructure(a)\b))
    MessageRequester("Test : Structure","Devrait être égal à 180124 : "+Str(astructure(a)\l))
  Next a
EndProcedure
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message par Twix »

merci bcp, mais chez moi ça marche toujours pas :cry:
je suppose que chez toi ça marche, cederavic ?

(WinXP, PIII, 128Mo et je vous passe les détails inutiles :oops: )
Twix : au secours, vlà les bugs qu'arrivents !!
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Chez moi ca marche nickel :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
LeCyb
Messages : 273
Inscription : dim. 26/déc./2004 20:49

Message par LeCyb »

Suffit de lire l'aide de Tailbite, tout y est expliqué :D
Vive le thread-safe !
Répondre