Controllo Active-X MFC in una finestra winforms su Vista 64 bit; & # 8220; Classe non registrata Eccezione & # 8221;
-
05-07-2019 - |
Domanda
Nel tentativo di provare a confermare un altro suggerimento di poster SO per la gestione delle chiavi in ??un controllo ActiveX ospitato su una finestra di winform, ho provato a creare un controllo ActiveX MFC bare-bone, quindi a posizionarlo su un modulo di Windows. In fase di progettazione il controllo è apparso senza problemi.
Quando si esegue l'applicazione, l'eccezione temuta "Classe non registrata." viene visualizzata la finestra di dialogo.
Entrambi i progetti sono in VS 2008. L'app Winforms è un'applicazione framework .Net 3.5.
Ho provato a eseguire il debugger, da explorer (privilegi elevati in entrambi i casi) e nulla sembrava funzionare. Mi sono anche assicurato di aver registrato manualmente l'OCX con gli eseguibili regsvr32 a 64 e 32 bit.
Questo mi ha lasciato perplesso perché non mi sarei aspettato che non funzionasse. Ho fatto esperimenti simili sul lavoro (box di Windows XP a 32 bit) senza problemi.
La mia configurazione VS è la seguente:
- Microsoft Visual Studio 2008
- Versione 9.0.30729.1 SP
- Microsoft .NET Framework
-
Versione 3.5 SP1
Il bit più confuso è che il controllo ActiveX sembra apparire in fase di progettazione. Eventuali risposte, suggerimenti o pensieri saranno apprezzati.
Soluzione
Avevo bisogno di cambiare l'output dell'host .Net in x86 invece di " Any Platform. " Ciò è necessario perché l'applicazione viene JITTED su x64 per cui non è stato compilato il controllo ActiveX. D'oh! L'app è stata eseguita correttamente dopo la modifica al progetto host ActiveX.