blq
Messages postés97Date d'inscriptionvendredi 22 octobre 1999StatutMembreDernière intervention13 juin 2016
-
22 janv. 2005 à 23:54
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
23 janv. 2005 à 11:15
Bonjour,
Comment séparer les instances d'une DLL en mémoire en VB6 (SP5).
Vopila mon souci : j'ai créé un DLL qui ouvre un fichier et qui
permet de renvoyer des lignes de ce fichier. D'un prog Exe j'appel la
DLL pour récupérer l'info souhaitée ainsi.
Dim theObj as New theLib.TheClass
Dim theLine as String
Call theObj.OpenFile(theFile)
theLine = theObj.GetLine(1)
Cela fonctionne trés bien !
Le problème vien ensuite si j'ouvre 2 fichiers sur 2 objets différents.
Dim theObj1 as New theLib.TheClass, theObj2 as New theLib.TheClass
Dim theLine as String
Call theObj1.OpenFile(theFile1)
Call theObj2.OpenFile(theFile2)
theLine = theObj1.GetLine(1)
Dans ce cas theLine est celui de fichier 2 et non du fichier 1.
J'ai bien compris le souci, les dernières données lues sont celles
conservées et renvoyées. A priori, je dirais que c'est la DLL qui
est mal foutue, mais pourquoi Ovj1 et Obj2 pointent sur les même
valeurs alors qu'a priori il y a deux déclartions (New) différentes.
J'ai essayé des tas de paramêtres (MultiUse, Global, Thread Cloisonnée,
1 seule Thread, etc.), enfin plein de truc et config, mais rien ne
change.
Quelq'un aurait-il une piste, un tutorial, une info, une FAQ, un forum
(etc.) qui permetrait d'avoir 2 instances disjointes ? Car j'ai eu beau
lire la Doc, il y a quelque chose que j'ai pas compris ou que je n'ai
pas fais.
Merci d'avance !
BLQ
A voir également:
Comment séparer les instances d'une DLL en mémoire
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 23 janv. 2005 à 10:36
Tout dépend de ton implémentation : si tu passe par un module, tes
données sont communes aux 2 instances, si tu passe par des modules de
classes, alors chaque instance est différenciée.
DarK Sidious
Administrateur et reponsable VB/API du site www.ProgOtoP.com
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 23 janv. 2005 à 11:15
Ben un module sert à faire des déclarations globales à tout un projet,
et c'est tout. Par contre, un module de classe permet de déclarer des
données localisés dans une instances de cette classe, ce qui permet de
créer des objets très facilement.
Dans un dll, c'est le module de classe le plus important ! Il ne faut
utiliser de module que si l'on veut garder des données communes entre
toutes les instances de dll qu'on peux créer.
DarK Sidious
Administrateur et reponsable VB/API du site www.ProgOtoP.com