Ошибка компиляции MIDL: перечислите с & quot; cy & quot;

У меня есть простой файл IDL, который содержит только один enum, Один из идентификаторов 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: ожидание идентификатора рядом с «cy»

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

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

4

Решение

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

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

byte_blob
bstr
clipdata
decimal
userbitmap
userhbitmap
remhglobal
statflag
...etc...
3

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

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

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

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

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

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

0

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