2010-10-07 21 views

Répondre

2

Oui, ne fonctionne pas, VB6 veut sa propre classe de collection. Je suis assez choqué de voir comment cela s'est passé. Je pensais, facile peasy, juste ajouter une référence à c: \ windows \ system32 \ msvbvm60.dll et utiliser la bibliothèque interop qui génère. Puis:

VBA::Collection^ coll = gcnew VBA::Collection(); 

Kaboom:

Retrieving the COM class factory for component with CLSID {A4C4671C-499F-101B-BB78-00AA00383CBB} failed due to the following error: 80040154. 

Classe non enregistrée. Regardé dans le registre, il est là sous HKLM \ CLSID mais la clé InprocServer32 est vide. Blanc. Ce n'est pas bon. Changement de point pour pointer vers msvbvm60.dll. Kaboom, 0x80040111, "ClassFactory ne peut pas fournir la classe demandée".

Cela ne va pas voler. Abandonnez tout espoir comme je le vois, sauf si vous pouvez refactoriser le code VB6.

+1

Ou il peut créer une fabrique 'VBA.Collection' personnalisée dans VB6 - une classe multi-usage avec une méthode unique' NewCollection' qui retourne 'New Collection' – wqw

+0

D'accord, cela fonctionnerait. –

+0

J'ai fini par abandonner tout espoir. :) Trouvé une autre façon. Merci pour l'aide. –