Вот очень простой интерфейс IDL, который мы успешно использовали в VS2008 (список аргументов сокращен для краткости):
interface Mailer
{
string findNode( [in] string requestedNode );
unsigned short addMessage( [in] string msg, [in] unsigned short kind );
};
Мы переносим решение на VS2010 SP1. Теперь у нас есть следующая ошибка сборки:
M.idl(3): error MIDL2025: syntax error : expecting a type specification near "string"
Это всегда работало как шарм, используя VS2008 SP1
Обратите внимание, что я уже заменил in
на [in]
. Почесывая голову, я обнаружил, что MIDL 2010 также не любит in
, но ничего не говорит о [in]
.
Обратите внимание, что unsigned short
принимается (что наблюдается при инвертировании двух методов интерфейса).
Как получилось? Как я могу заставить MIDL снова понять string
?
ТИА.