Повторяющиеся записи ENUM в двух компонентах COM - PullRequest
0 голосов
/ 25 октября 2018

Я использую два компонента ATL / COM в своем приложении VC ++ с помощью следующего оператора импорта.

#import "First.dll"  raw_interfaces_only, raw_native_types, no_namespace, named_guids
#import "Second.dll"    raw_interfaces_only named_guids no_namespace no_implementation 

First.DLL и Second.DLL имеют несколько повторных объявлений.Например, следующее enum объявлено в обоих импортированных DLL-файлах.

enum Collection
 {
    JAN,
    SEPT,
    DEC
 }

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

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете устранить неоднозначность между типами с одинаковыми именами, переместив их в разные пространства имен.Для этого удалите атрибут no_namespace .Если типы еще не объявлены в пространстве имен, вы можете использовать атрибут rename_namespace в директиве импорта # .

В качестве альтернативы вы можете переименуйте одно или оба из имен встречающихся типов.Это позволяет сохранить атрибут no_namespace и импортировать все типы в глобальное пространство имен.

...