Domanda

Abbiamo un'applicazione .NET che deve esaminare una cartella che può contenere COM librerie (DLL e OCX.) Quando facciamo incontrare una COM libreria di una cosa che dobbiamo compiere è quello di estrarre il GUID dal COM DLL o OCX .

C'è un modo semplice per fare questo con .NET senza utilizzare le librerie 3a parte?

È stato utile?

Soluzione

Questo dovrebbe funzionare per voi. Si richiede un riferimento a c:. \ Windows \ system32 \ Tlbinf32.dll , ma sto supponendo che va bene perché non è un componente di terze parti

Imports TLI 'from c:\windows\system32\tlbinf32.dll

Dim reglib As TLI.TLIApplication = New TLI.TLIApplicationClass()
Dim DLLPath As String = "c:\mycomponent.ocx"
MsgBox(reglib.TypeLibInfoFromFile(DLLPath).GUID.ToString())

Altri suggerimenti

Si dovrà utilizzare interoperabilità (sia P / Invoke e COM) al fine di fare questo. In primo luogo, si dovrà chiamare il LoadTypeLib per ottenere l'interfaccia ITypeLib per la libreria tipo.

Da lì, si dovrà utilizzare i metodi di che, al fine di ottenere il GUID per la libreria, o ottenere le istanze il CLSID o IID per nulla definita nella biblioteca.

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