Повторяющиеся записи ENUM в двух компонентах COM

Я использую два компонента 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 имеют несколько повторных объявлений. Например, следующее перечисление объявлено в обоих импортированных файлах DLL.

enum Collection
{
JAN,
SEPT,
DEC
}

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

0

Решение

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

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]