Я работаю над несколькими проектами, использующими COM, и столкнулся с проблемой. Я использую внешний .idl, который компилируется и импортируется, поэтому в моем проекте только библиотека .idl.
Теперь, когда я компилирую внутренний idl проекта, который содержит только библиотеку, файл dlldata.c не создается в конфигурации x32. Однако, если я скомпилирую проект и он .idls в конфигурации x64, будет создан файл dlldata.c, и проект будет работать нормально.
Я попытался просмотреть все параметры Visual Studio для MIDL, но безрезультатно. По-видимому, я могу решить эту проблему только путем добавления фиктивного интерфейса, чего я не хочу делать.
Есть ли другое решение для создания файла dlldata.c в конфигурации x32 без добавления фиктивного интерфейса?
Я нашел решение. Кажется, вы должны быть очень осторожны с Pre-Build Events для внешних .idls. Даже платформа имеет значение. Компиляция параметров / env win32 и / env x64 в MIDL для каждой конфигурации, соответственно, решила мою проблему.
Других решений пока нет …