Bonjour,
J'ai plusieurs dll qui nécéssite un même objet TCriticalSection. J'ai essayé de le passé en paramètre à l'initialisation de la dll mais ça na marche pas.
Peut-on réellement passé un objet à une dll ou est-ce impossible ?
Merci d'avance.
Bonjour,
J'ai plusieurs dll qui nécéssite un même objet TCriticalSection. J'ai essayé de le passé en paramètre à l'initialisation de la dll mais ça na marche pas.
Peut-on réellement passé un objet à une dll ou est-ce impossible ?
Merci d'avance.
Bonjour,
à priori on peut passer n'importe quel objet en paramètre dans une fonction / procédure
Quel est ton message d'erreur ?
bonjour,
oui on peut passer n'importe quel objet en paramètre dans une fonction/procédure, mais pas à une DLL .
pour faire cela, le mieux est d'utiliser les paquets d'execution qui eux le permettent.
@++
Dany
Bon du coup j'ai changé ma dll en package.
J'ai suivit le tutoriel de plugin à base de package. Pour garder le principe modulaire des dll je charge dynamiquement mon packet. Le chargement ce passe bien mais c'est l'instanciation de la fiche que contient le package qui pose problème.
J'ai une violation d'accès sur la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 var PHandle : THandle; MyClasse : TPersistentClass; Instance : TC6INDFRM; begin //C6SADSQL_Ouvrir; MyClasse := nil; Instance := nil; PHandle := LoadPackage('c6statsp.bpl'); try MyClasse := getClass('TC6SADSQL'); if(not assigned(MyClasse)) then Exit; if not MyClasse.InheritsFrom(TC6INDFRM) then Exit; Instance := TC6INDFRM(MyClasse).Create(nil); Instance.ShowModal; finally FreeAndNil(Instance); UnloadPackage(PHandle); end;et je vois pas pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Instance := TC6INDFRM(MyClasse).Create(nil);
J'ai pourtant l'impression d'avoir suivit le tutoriel...
si tout celà est dans le code d'une form et que TC6INDFRM est une form ( on dirait que oui ), essai d'utiliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Instance := TC6INDFRM(MyClasse).Create(Self);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager