Что такое C ++ / CLI, эквивалентный VB6 Collection? - PullRequest
0 голосов
/ 08 октября 2010

Я уже пробовал ArrayList ^, а VB6 выдает ошибку 'Несоответствие типов'.Я не вижу C ++ / CLI «Коллекция» или «Список».

Итак, что такое эквивалент, если он есть?

1 Ответ

2 голосов
/ 08 октября 2010

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

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 пуст. Blank . Это не хорошо. Изменил это, чтобы указать, чтобы указать на msvbvm60.dll. Kaboom, 0x80040111, «ClassFactory не может предоставить запрошенный класс».

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

...