Измените имя объекта для com DLL - PullRequest
0 голосов
/ 07 мая 2020

У нас есть компонент com от стороннего производителя, и мы используем эту com dll из сценария vb. Мы хотим удалить стороннюю зависимость dll и написать собственный COM-компонент с тем же именем и объектом, чтобы нам не нужно было ничего менять в нашем скриптовом коде.

Я создал новый проект с тем же именем и классом dll. Но каким-то образом в файле rgs имя отображается по-другому

исходное имя стороннего объекта - ReadWriteFileDataLibrary.ReadWriteFileDataAPILib

Созданный мной проект имеет имя ниже в файле rgs VersionIndependentProgID = s 'ReadWriteFileDataLibrary.ReadWriteFileDataAPI'

Последние три буквы (Lib) отсутствуют. Можно ли изменить имя, такое же, как у старой библиотеки DLL?

Я новичок в COM, поэтому мало о нем знаю

1 Ответ

0 голосов
/ 08 мая 2020

Имя объекта взято из оператора coclass в файле IDL. Вы можете изменить имя там (с ReadWriteFileDataAPI на ReadWriteFileDataAPILib ), а затем проверить другие места в коде, которые, возможно, потребуется исправить, чтобы использовать новое имя. Могут ли и где такие места могут существовать, зависит от того, как был сгенерирован и размещен код C ++ COM, что не было указано в вопросе.

Файл RGS будет регенерирован с новым именем объекта при следующей сборке проекта .

...