A tous,
J'ai une interrogation sur la gestion d'une DLL (VB6 SP5 sous XP SP2)
J'ai créé une DLL sans souci et j'accède sans problème à ses fonctions.
Dans une des fonctions je déclare de quoi ouvrir un fichier pour
l'ouvrir et charger son contenu dans une structure que j'accède via une
liste ma_liste(). Pas de souci je lis les données et je les renvoi au
prog exe qui appel la DLL et passe le nom de fichier en argument d'un
appel.
La ou cela se complique c'est quand je veux ouvrir deux fichiers différents.
Exemple à partir de l'EXE:
dim objet1 as new LaClassDeLaDLL
dim ligne1 as String
call objet1.openFile(theFile)
ligne1 = objet1.GetLaLigne(1)
Cela marche trés bien et sans souci !
Mais si je fais l'exemple suivant :
dim objet1 as new LaClassDeLaDLL, objet2 as new LaClassDeLaDLL
dim ligne1 as String
call objet1.openFile(theFile1)
call objet2.openFile(theFile2)
ligne1 = objet1.GetLaLigne(1)
Et bien ligne1 correspond au second fichier (theFile2 !), après
plusieurs tests, j'ai bien compris que la DLL se charge en mémoire
(sans doute...) que les deux fichiers sont bien ouverts et chargés par
la DLL (cela marche trés bien après trace). Mais voila, c'est comme si
les 2 objets n'étaient pas séparés en mémoire et ne faisait qu'un ou du
moins leurs données.
J'ai essayé des tas de truc au niveau de la déclaration de la Class
(Instance, MultiUse, Global, etc.) mais rien n'y fait. Il faudrait
presque créer 2 Class avec deux noms différents pour séparer les infos.
Je me doute bine qu'il y a un 'truc' que je n'arrive pas à comprendre ou que je n'ai pas fais...
Est-ce que l'un d'entre vous connaitrait une piste (tutorail,
exemple, aide complémentaire, ...) pour m'aider. J'ai eu beau lire
l'aide en ligne, je n'y arrive pas !.
Merci d'avance !
BLQ