В Visual Studio, когда вы компилируете foo.idl, MIDL генерирует информацию прокси в foo_p.c.
К сожалению, для файлов Win32 и x64 используется одно и то же имя файла. Для Win32 файл начинается с:
#if !defined(_M_IA64) && !defined(_M_AMD64)
Для x64 файл начинается с:
#if defined(_M_AMD64)
Когда вы собираете для Win32, а затем сразу же собираете для x64, он не заменяет файл foo_p.c, что означает, что проект не может связать.
Я попытался создать событие перед сборкой, которое удалит файл foo_p.c, если это не та архитектура, но VS даже не удосужился выполнить этот шаг.
Как получить, чтобы я мог построить одну конфигурацию, а затем другую?