Ho un'applicazione VB6 che utilizza una DLL COM. La DLL è scritta in C#. Nelle proprietà del progetto C# ho selezionato l'opzione "Registra per interoperabilità COM". L'app VB6 funziona perfettamente sul mio computer di sviluppo. Il codice C# segue questo formato esattamente: CodeProject C# COM ExampleCome registrare una DLL COM scritta in C# con Regsvr32?
Durante la distribuzione ad altre macchine, Regsvr32.exe mi dà il seguente errore quando provo a registrare la DLL:
The module "MyCOM.dll" was loaded but the entry-point DLLRegisterServer was not found.
Cosa significa? Nessun tutorial/documentazione che ho letto sulle DLL COM dice qualcosa su "entry-point DLLRegisterServer".
Abbiamo avuto problemi MAJOR utilizzando RegAsm.exe su macchine diverse, quindi abbiamo davvero bisogno di una soluzione in cui possiamo eseguire regsvr32.exe invece che funzionerà per qualsiasi macchina che distribuiamo a (cioè XP, Vista, Windows 7, macchine x86, macchine x64, ecc.)
Cosa devo aggiungere al mio codice C# per renderlo registrabile con regsvr32.exe?
@Hans - 2 domande: Quali sono le 2 versioni per le macchine a 64 bit? C'è un modo per creare, distribuire e utilizzare la DLL COM in VB6 senza registrarlo? –
La versione a 32 e 64 bit. Tecnicamente sì con un manifest di COM privo di registro nell'app client. Ha bisogno di ''. –
@Mike Webb: Come stai facendo l'interoperabilità COM con VB6 devi 1. compilare il progetto C# con un target x86 e 2. usare regasm in c: \ windows \ syswow64. –