Мастер простых объектов ATL - ошибка «Объект Xxx уже существует» - PullRequest
5 голосов
/ 12 марта 2009

Я пытаюсь создать новый COM-объект в моей DLL с помощью мастера простых объектов ATL в Visual Studio 2005.

Я ввожу короткое имя для объекта, и все остальные поля являются производными.

Однако, когда я нажимаю Далее в мастере, появляется следующее сообщение об ошибке:

Object 'IXxxInterfaceName' already exists

Я искал во всем своем решении все ссылки на IXxxInterfaceName и не вижу его нигде.

Как мастер определяет, что он уже существует?

Ответы [ 3 ]

2 голосов
/ 08 апреля 2009

Я так и не выяснил, почему волшебник определил, что имя объекта уже существует - я предполагаю, что что-то было кэшировано где-то, что я не смог отследить.

В конце я добавил 2 к концу имени интерфейса при его создании, что позволило добавить его. Затем я заменил все вхождения IXxxInterfaceName2 на IXxxInterfaceName. После этого все заработало.

Если я когда-нибудь укажу причину этой проблемы, я обновлю ответ.

1 голос
/ 12 марта 2009

Определено ли это в библиотеке, на которую вы ссылаетесь?

0 голосов
/ 10 декабря 2011

Также происходит в VS 2008. Однако решение «Очистить решение» и «Очистить проект от сборки» решает это:

...