Dans Visual Studio, lorsque vous compilez foo.idl, MIDL génère les informations de proxy dans foo_p.c.MIDL génère le même fichier pour/env win32 et/env win64
Malheureusement, pour les fichiers Win32 et x64, il utilise le même nom de fichier. Pour Win32, le fichier commence par:
#if !defined(_M_IA64) && !defined(_M_AMD64)
x64, le fichier commence par:
#if defined(_M_AMD64)
Lorsque vous construisez pour Win32 puis construire immédiatement pour x64, il ne remplace pas le foo_p. c fichier, ce qui signifie que le projet ne parvient pas à lier.
J'ai essayé d'avoir un événement de pré-construction qui supprime le fichier foo_p.c si c'est pour la mauvaise architecture, mais VS ne prend même pas la peine d'exécuter cette étape.
Comment l'obtenir pour que je puisse construire une configuration et l'autre?
Cette suce, mais il est probablement la seule solution depuis génération à double stub dans Visual Studio semble être rompu (voir http://connect.microsoft.com/VisualStudio/feedback/details/648537/midl-v7 -00-0555-ne-crée-pas-double-stubs-par-défaut). Merci d'avoir posté votre réponse! –