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