Разрешение IDL Предупреждение MIDL2471: Некоторые атрибуты и / или типы данных в idl не могут быть представлены в библиотеке типов - PullRequest
2 голосов
/ 28 марта 2012

Проект, над которым я работаю, начал выдавать следующее предупреждение:

Предупреждение MIDL2471: Некоторые атрибуты и / или типы данных в файлах idl и / или включенных / импортированных idl не могут быть представленыв библиотеке типов:: unique [Параметр 'eventData' процедуры 'Event' (Dispinterface '_Events')]

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

dispinterface _Events
{
    properties:
    methods:
    [id(1)] void ConnectStatusChange([in]long lStatus, [in]long lLastError);
    [id(2)] void Event([in]long lEvent, [in, unique]SAFEARRAY(unsigned char) * eventData);
    [id(3)] void CriticalEvent([in]long lEvent,  [in, unique]SAFEARRAY(unsigned char) * critEventData, [in] long lEventID);
    [id(4)] void Log([in]BSTR bstrMessage, DWORD dwMessageType);
};

Любая помощь или совет очень важны.Заранее спасибо!

ОБНОВЛЕНИЕ: Я никогда не решал эту проблему.Скорее, мы закончили непреднамеренным рефакторингом и никогда не знали наверняка, что вызвало это.Однако, так как я никогда не получал никаких ответов и потому что в Интернете почти ничего об этом не было, я сильно склонялся к тому, что это было что-то экологическое с моей установкой VS, так что я никогда не знал, что было не так, вероятно, вряд ли будет иметь большое значение вэтот момент.

...