2010-12-28 16 views
5

Ich versuche, die Kommunikation zwischen Centura und eine COM-DLL einzurichten. (http://download.resip.fr für einen Datenbankimport)Verwenden von tlbexp.exe auf einer COM-DLL

Centura benötigt eine TLB-Datei, um mit dieser Komponente kommunizieren zu können. Normalerweise würde ich regasm /tlb verwenden, um die TLB zu generieren, aber da es eine COM-DLL ist, ist dies nicht möglich.

Ich fand, dass ich TlbExp für .NET DLL verwenden: http://msdn.microsoft.com/en-us/library/hfzzah2c(v=vs.80).aspx

Ich habe versucht, diese aus, ist es wahrscheinlich scheitern würde zu wissen (wie ich COM-DLL). Ich erhielt diesen Fehler:

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.

Mit Dependency Walker Ich bemerkte zwei .dll fehlt. Ich habe ishims.dll online gefunden, aber ich kann die wer.dll nicht finden. Siehe this question.
Ich weiß nicht, ob der Tlbexp Fehler etwas mit dieser Datei zu tun hat, die fehlt?

Zusammengefasst ist meine Frage: Wie bekomme ich eine .tlb von dieser .dll? Ich kann anscheinend keine Möglichkeit finden, die TLB aus dieser COM-DLL herauszuziehen.

Mit freundlichen Grüßen
Clint Cambier

Antwort

2

TblExp und regasm auf .NET-Assemblies nur gültig sind, was Sie haben, ist höchstwahrscheinlich ein Standard nicht .NET COM-DLL. Daher ist keiner dieser beiden Befehle für diese DLL gültig.

Standard-COM-Objekte werden unter Verwendung von regsvr32 registriert. Versuchen Sie das gegen Ihre DLL auszuführen und sehen Sie, ob sie sich korrekt registriert. Wenn dies der Fall ist, sollten Sie es in Centuras ActiveX-Explorer finden.

+0

Ich habe danach bemerkt TlbExp arbeitete nur auf .NET-Assemblys. Der TlbImp funktioniert auf COM .dlls. Was für Verwirrung sorgte. Regsvr32 wird nicht funktionieren, das weiß ich. Ich werde Hans Passants Vorschlag ausprobieren. – Starceaker

+0

Ich konnte meinen Kommentar nicht mehr bearbeiten, ich meinte, dass ich bereits versucht habe, regsvr32 und es hat nicht funktioniert. Ich werde es nochmal versuchen, es tut nicht weh zu versuchen. – Starceaker

9

Was Sie versuchen, funktioniert nur für .NET-Assemblys, nicht native COM-Server. Die Typbibliothek für sie ist fast immer in der DLL eingebettet. In Visual Studio verwenden Sie Datei + Öffnen + Datei und wählen Sie die DLL. Öffnen Sie den Knoten "TYPELIB", klicken Sie mit der rechten Maustaste auf die Ressource (normalerweise 1), Exportieren. Speichern Sie es beispielsweise in einem Projektverzeichnis und verwenden Sie die Dateinamenserweiterung .tlb.

Verwandte Themen