Domanda

Ho un progetto COM che contiene un numero di file IDL, alcuni dei quali vengono importati in altri.In che modo Visual Studio decide quali compilare (usando MIDL) per primo?

Voglio controllare l'ordine.Ho un file IDL master che contiene la mia dichiarazione di libreria con diverse importazioni e ottengo un errore di compilazione se non è il primo compilato.

(Se qualcosa di questo suona davvero strano...Sono nuovo di COM / ATL, ed è davvero, davvero confuso).

È stato utile?

Soluzione

Non puoi chiedere a Visual Studio di creare .file ild in un ordine specifico.Invece puoi #include alcuni .file idl in altri .file idl e impostare i file importati su "esclusi dalla compilazione".In questo modo MIDL non compilerà i file importati separatamente, ma includerà il loro contenuto nel posto specifico di un altro file e compilerà come parte di quel file (stesso effetto di C preprocesor #include).

Altri suggerimenti

È possibile creare cose in studio Visual Studio in qualsiasi ordine che desideri, ci sono 2 modi per farlo:

    .
  1. Metti in un passo di pre-build in cui è possibile ottenerlo per costruire quelli che desideri costruire prima.

  2. Metti quelli che vuoi costruire prima in un progetto separato e farlo costruire prima quel progetto rendendo il tuo altro dipendente da esso.

  3. Questo è ciò che dovresti fare se non è possibile modificare i file IDL.Se tuttavia un file IDL dipende davvero da un altro e puoi modificarli, allora fai ciò che è stato suggerito sopra e prenderne uno per includere l'altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top