utilizziamo una DLL C++ a 32 bit autoprodotta dalle nostre applicazioni C#. Ora abbiamo notato che quando le applicazioni C# vengono eseguite su un sistema a 64 bit, il runtime a 64 bit viene automaticamente utilizzato e, naturalmente, non è possibile accedere alla DLL a 32 bit dal runtime a 64 bit.C#: accesso a DLL a 32 bit/64 bit in base alla piattaforma
La mia domanda è: c'è un modo di utilizzare la DLL a 32 bit? In caso contrario, se avessi creato una versione a 64 bit della DLL, sarebbe stato possibile consentire all'applicazione di scegliere a quale P/Invoke corrispondere?
Sto pensando di creare due classi helper in C#: una che importa le funzioni dalla DLL a 32 bit e quella che importa dalla DLL a 64 bit, quindi creando una classe wrapper con una funzione per ciascuna funzione importata che chiama sia Importatore a 32 bit o importatore a 64 bit a seconda della "bittyness" del sistema operativo. Funzionerebbe?
Oppure c'è un altro modo semplice per fare le cose?
Ho contrassegnato questa risposta la soluzione accettata ora, poiché è quello che ho fatto con successo da quando ha fatto la domanda. –