2010-10-07 2 views

ответ

2

Да, не работает, VB6 хочет собственный класс Collection. Я довольно шокирован, как это получилось. Я думал, легко peasy, просто добавьте ссылку на c: \ windows \ system32 \ msvbvm60.dll и используйте библиотеку interop, которая генерирует. Тогда:

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. 

Класс не зарегистрирован. Просмотренный в реестре, он находится под HKLM \ CLSID, но ключ InprocServer32 пуст. Пустой. Это не хорошо. Изменил его, чтобы указать на msvbvm60.dll. Kaboom, 0x80040111, «ClassFactory не может предоставить запрошенный класс».

Это не будет летать. Оставь все надежды, как я это вижу, если вы не можете реорганизовать код VB6.

+1

Или он может создать собственную фабрику 'VBA.Collection' в VB6 - многоцелевой класс с единственным методом' NewCollection', который возвращает 'New Collection' – wqw

+0

Согласен, что это сработает. –

+0

Я закончил отказываться от всякой надежды. :) Найден другой путь. Спасибо за помощь. –