21 messaggi dal 29 maggio 2006
Ciao a tutti,

stavo testando un mio applicativo sui "nuovi" OS Microsoft, W7, W7x64 e Server2008R2.

Orbene, ho una certa routine che va a leggere dal registry una chiave.
La lettura dal registry funziona su W7 ma su W7x64 (e penso anche sul R2 visto che è a 64bit) la lettura ritorna stringa vuota ma SOLO se l'applicativo viene compilato x86, se lo compilo AnyCPU la lettura va a buon fine.

Il problema è che non posso permettermi la compilazione AnyCPU perchè uso alcune DLL del 1800 di terze parti che sono solo a 32bit.

Il tutto mi ricorda un problema che ebbi col medesimo applicativo ma con FX1.1. Su Vista/Server2008 a 64bit la lettura del registry (con applicativo compilato x86) ritornava stringa vuota, questo perchè FX1.1 andava a leggere la "versione" sbagliata del registry (non ricordo se quella a 32 o a 64), infatti dovetti modificare la routine ed utilizzare direttamente le API per leggere dal registry, col passaggio a FX2 il problema era sparito ma ora sembra che si riproponga su W7x64...

Ho googlato un po' ma trovato nulla...

Esperienze in merito?

Grazie per l'attenzione
Paolo
compilando a 32 bit, tu forzi l'uso delle chiavi riservate ai 32 bit.
tra l'altro, non ricordo che influisca effettivamente su DLL esterne la compilazione del main assembly, sei sicuro che mettendo Any CPU effettivamente queste non possano essere utilizzate?

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
21 messaggi dal 29 maggio 2006
compilando a 32 bit, tu forzi l'uso delle chiavi riservate ai 32 bit. tra l'altro, non ricordo che influisca effettivamente su DLL esterne la compilazione del main assembly, sei sicuro che mettendo Any CPU effettivamente queste non possano essere utilizzate?

Ciao Daniele, grazie per la risposta.

Sulla prima affermazione, però, il problema era scomparso passando all'FX2, quindi non sembrerebbe proprio così.

Il problema si manifestava come detto già con l'FX1.1 e dovetti ricorrere alle API per leggere il registry. Passando al FX2 feci dei test e, correttamente, il tutto era tornato a funzionare così levai la mia classe di lettura del registry nativo.

Ora testando W7x64, e 2008R2 che è solo x64 il problema è tornato a proporsi e ho "scongelato" la mia simpatica classe di lettura del registry.
Non mi ricordo perchè è passato del tempo ma mi pare che non tutte le hives sono riproposte nella versione a 32bit del registry e, manco a farlo apposta, la chiave che leggo io è compresa in una delle hives di cui sopra...

Relativamente all'utilizzo di AnyCPU con DLL esterne a 32bit ho potuto verificare che quella che devo usare io non funziona per nulla  Però non me ne intendo abbastanza di interop vari per dire se non ci sia modo di farla funzionare...

Cmq meglio la soluzione di leggere il registry usando le API, visto che della DLL del 1800 mi fido il giusto...



*Daniele Bochicchio* (ASPItalia.com)
Il mio nuovo libro su Silverlight 3.0
http://books.aspitalia.com/Silverlight-3.0/


Ciao
Paolo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.