Nella mia azienda, siamo passati di recente da VC9 a VC10.Il mix dei runtime è una soluzione praticabile?
Abbiamo migrato i nostri progetti, ma poi il responsabile ci ha detto che avremmo dovuto conservare alcune DLL comuni di base compilate con VC9 sulle nostre macchine di produzione per qualche tempo.
Queste DLL fanno uso di strutture personalizzate, alcune delle quali contengono std::vector
, std::map
e così via. Ora, ho notato che le dimensioni dei contenitori standard sono cambiate: alcune sono diventate più grandi, altre sono diventate più piccole. Di conseguenza, anche le dimensioni delle nostre strutture personalizzate sono cambiate.
Per risolvere i problemi causati dalla modifica delle dimensioni, un mio collega ha pensato di aumentare artificialmente le dimensioni delle nostre strutture per consentire di compensare le modifiche delle dimensioni dei membri futuri in modo che le strutture mantengano le stesse dimensioni, indipendentemente dal tempo di esecuzione. utilizzare, impedendo il danneggiamento dello stack durante le chiamate di funzione.
Personalmente, ritengo che questa "soluzione" sia orribile perché mentre le dimensioni contano, così pure il layout delle strutture. Per me, aumentare l'impronta di memoria di tutte le strutture per risolvere i problemi organizzativi sembra davvero sbagliato.
Per farla breve, la mia domanda è: è anche possibile utilizzare contemporaneamente due diversi runtime (usando il trucco descritto o qualsiasi altro trucco) mentre si usano tipi non C nei prototipi di funzione? Hai qualche buona/cattiva esperienza riguardo una situazione simile?
'1.' non è un'opzione, ma' 2.' potrebbe funzionare davvero bene. Grazie mille per l'articolo collegato. – ereOn
@ereOn: prego. –