Domanda

Come si registra un oggetto COM scritto in Managed C ++ come SingleUse? Il regasm non sembra avere l'opzione. Immagino che possa essere semplice come definire un attributo in AssemblyInfo.cpp ma non riesco a trovarlo.

Ho scritto un file EXE ActiveX VB6 e funziona come voglio io, ovvero ogni richiesta di un'interfaccia crea un nuovo server in esecuzione.

Devo ricorrere al wrapping della mia COM C ++ gestita in VB6? Deve esserci un modo più semplice.

È stato utile?

Soluzione

Sembra che i componenti serviti contengano la chiave del mio problema.

http://oreilly.com/catalog/comdotnetsvs/chapter/ch10.html

Una volta derivato da ServicedComponent nello spazio dei nomi System.EnterpriseServices, eseguo un regsvcs sulla dll e quindi modifica il pooling in dcomcnfg in modo che sia maggiore di uno: tutto funziona. Un altro problema è che il componente Managed C ++ in fase di registrazione sia compilato con / clr: pure non solo / clr. Devo ancora completare il progetto, ma i progetti di esempio che ho costruito sulla strada indicano che dovrebbe funzionare in questo modo. Penso che avvolgerò la mia soluzione C ++ gestita in un assembly C # ...

Ora che ho quasi finito il progetto un'altra cosa ... Devi essere su un Server O \ S per far funzionare il pool.

Grazie per la tua guida ...

Altri suggerimenti

Come utilizzare istanze singole o multiple di un oggetto OLE in MFC usando Visual C ++

http://support.microsoft.com/kb/141154

Questo potrebbe darti alcuni indizi:

Utilizzo dei controlli gestiti come controlli ActiveX
http://blogs.msdn.com/andreww/archive/2008/11/24/using-managed-controls-as-activex-controls.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top