2012-03-16 8 views
6

Ho una libreria di tipi in un'app per il componente aggiuntivo di Excel a 32 bit.Come trasferire una libreria dei tipi a 32 bit in un progetto a 64 bit (mentre si impedisce l'eliminazione dei nomi)

Ho bisogno di tradurre l'intera app a 64-bit.

enter image description here

Non posso semplicemente copiare incollare la libreria dei tipi, perché il GUID la volontà di scontrarsi con la 32 bit app già installate, idem per la nomina.
Qual è il modo migliore per tradurre l'applicazione a 64 bit in modo da evitare conflitti di nome?

Oppure esiste un meccanismo che risolva automaticamente le interferenze di nome e GUID di cui non sono a conoscenza?

+0

[Registro di sistema Windows a 64 bit v.s. Registro a 32 bit] (http://stackoverflow.com/questions/869783/windows-64-bit-registry-v-s-32-bit-registry) potrebbe aiutare. – kobik

+0

Quindi hai un'app XE2 con una configurazione di build a 32 bit e una configurazione di build a 64 bit, e basta cambiare le configurazioni di build e ricostruire. Destra? Se la risposta di david è corretta (come sospetto sia), allora è tutto quello che c'è da fare. –

+0

@WarrenP Questo è tutto. Non l'ho fatto con un componente aggiuntivo COM Excel (ma è molto alto nella mia lista TODO), ma l'ho fatto con un'estensione della shell alcuni anni fa. La cosa bella è che usi codice identico sotto ogni aspetto e miri solo a x86 o x64. Nessuna compilazione condizionale richiesta. –

risposta

11

I server COM a 32 e 64 bit sono registrati in diverse viste del registro. Quindi i processi a 32 bit e i processi a 64 bit esistono in spazi dei nomi GUID disgiunti. In altre parole, si utilizza lo stesso GUID per entrambe le versioni a 32 e 64 bit. Il redirector del registro fa il resto.

+0

Grazie a David, ho sospettato (e spero) che sarebbe stato il caso. – Johan