2010-12-28 16 views
5

Sto tentando di impostare la comunicazione tra Centura e una DLL COM. (Scaricato da http://download.resip.fr per l'importazione di un database)Utilizzo di tlbexp.exe su una DLL COM

Centura richiede un file .tlb per poter comunicare con questo componente. Normalmente userei regasm /tlb per generare il .tlb ma visto che si tratta di un dll COM questo non è possibile.

ho scoperto che potevo usare TlbExp per NET dll di: http://msdn.microsoft.com/en-us/library/hfzzah2c(v=vs.80).aspx

ho provato questo fuori, sapendo che sarebbe probabilmente fallire (come ho COM dll). Ho ricevuto questo errore:

TlbExp : error TX0000 : Could not load file or assembly 'file:///C:\Windows\system32\ResipBcb.dll' or one of its dependencies. The module was expected to contain an assembly manifest.

Utilizzo di Dipendenza Walker Ho notato che mancano due .dll. Ho trovato ieshims.dll online ma non riesco a trovare il wer.dll. Vedi this question.
Non so se l'errore tlbexp ha qualcosa a che fare con questo file che manca?

Per riassumere, la mia domanda è: Come ottengo un .tlb da questo .dll? Non riesco a trovare alcun modo per estrarre il .tlb da questo COM .dll.

migliori saluti
Clint Cambier

risposta

2

TblExp e regasm sono valide unicamente sulla assembly .NET, quello che hai è molto probabilmente uno standard non NET COM DLL. Quindi nessuno di questi due comandi è valido su questa DLL.

Gli oggetti COM standard vengono registrati utilizzando regsvr32. Prova a eseguirlo con la tua DLL e controlla se si registra correttamente. Se lo fa, dovresti vederlo elencato nell'Explorer ActiveX di Centura.

+0

In seguito ho notato che TlbExp funzionava solo su assiemi .NET. Il TlbImp funziona su COM .dll. Che ha causato la confusione per me. Regsvr32 non funzionerà, questo lo so. Andando a provare il suggerimento di Hans Passant. – Starceaker

+0

Non ho più potuto modificare il mio commento, volevo dire che ho già provato regsvr32 e non ha funzionato. Ci proverò di nuovo, non mi fa male provare. – Starceaker

9

Quello che si sta tentando di fare funziona solo per gli assembly .NET, non per i server COM nativi. La libreria dei tipi per loro è quasi sempre incorporata nella DLL. In Visual Studio, utilizzare File + Apri + File e selezionare la DLL. Aprire il nodo "TYPELIB", fare clic con il tasto destro del mouse sulla risorsa (di solito 1), Esporta. Salvalo su una directory di progetto, usa l'estensione del file .tlb.

Problemi correlati