2015-01-15 9 views
4

У меня есть простой файл IDL, который содержит только один enum. Один из идентификаторов - cy.Ошибка компиляции MIDL: перечисление с "cy"

[ 
    uuid(2642345F-F2AB-3600-8926-26E823800902), 
    version(1.0), 
] 

library MyLib 
{ 
    typedef[ uuid(a0b0aa7b-345f-4b3a-b88f-d6cdd048e205) ] 
    enum Codes 
    { 
     cy, 
     abc 
    } Codes; 
}; 

Однако MIDL не компилировать это и дает мне сообщение об ошибке, как:

MIDL2025: expecting an identifier near "cy"

Моя первая догадка что cy это ключевое слово/зарезервированное слово в MIDL - но это не так.
Мое второе предположение заключалось в том, что либо cy уже использовался где-то, либо является типом - но это не так.

Любая идея о том, что может быть проблемой здесь?

+0

Вы не можете поместить enum внутри библиотеки {} block. Просто переместите его за его пределы. –

ответ

3

Основываясь на некоторых экспериментах, похоже, что компилятор отказывает в регистрах, нечувствительных к регистру, от WTypes.h.

Например, он также будет отрицать эти имена:

byte_blob 
bstr 
clipdata 
decimal 
userbitmap 
userhbitmap 
remhglobal 
statflag 
...etc... 
+0

Но перечисление в моем коде находится в другой библиотеке (MyLib). Так почему это должно противоречить тем, что в Wtypes.h? – athena

0

первый шаг для расследования, является ли проблема специально с cy, или что-то другое.

Для начала, я бы поменял его на cyxyzzy или zx и посмотрел, не жалуется ли он. Если это так, возможно, что-то не так с структурой имени (например, все в нижнем регистре). Если нет, возможно, это связано с конкретным идентификатором cy.

Другая возможность заключается в замене строк abc и cy, чтобы увидеть, следует ли ошибка после cy.

Одна вещь, вы можете рассмотреть, есть довольно много хитов при поиске midl cy на сети, которая, кажется, предположить, cy является совмещенным к типу currency данных, так что может быть проблемой.

Изменения, которые я предложил выше, должны надеяться подтвердить или опровергнуть эту возможность, но, как минимум, они помогут решить масштаб проблемы.

 Смежные вопросы

  • Нет связанных вопросов^_^