msbuild в x64 env, вызывающий 32-битную среднюю компиляцию - PullRequest
0 голосов
/ 28 июня 2019

У меня есть решение Visual Studio 2013, имеющее несколько файлов idl. В Visual Studio 2013 я использовал x64-битное командное окно для запуска msbuild для решения, и оно вызывает midl, который создает x64-битные заглушки из midl-кода. Я отчетливо вижу, как midl обрабатывает файлы IDL в 64-битной среде, как показано ниже:

64-битная обработка C: \ Program Files (x86) \ Windows Kits \ 10 \ include \ 10.0.17763.0 \ um \ oaidl.idl

В созданных файлах .c я также вижу следующий #define, который указывает, что он для 64-битных:

если определено (_M_AMD64)

Однако, когда я пытаюсь сделать то же самое в Visual Studio 2019, midl создает 32-битный код. Я не вижу 64-битную обработку midl. Также полученный код имеет следующие строки, предполагающие, что он для 32-битных:

если! Определено (_M_IA64) &&! Определено (_M_AMD64) &&! Определено ( ARM )

Если в той же командной строке я просто вызываю midl, передавая имя файла IDL без каких-либо параметров, он выдает 64-битный код.

Любые входные данные, почему midl не обрабатывает 64-битные файлы IDL при вызове из msbuild? Ценю любую помощь. Спасибо,

...