Laden...

COM-Komponente von C++ einbinden

Erstellt von oehrle vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.686 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren
COM-Komponente von C++ einbinden

Hallo, kann mir jemand sagen wie ich genau eine DLL einbinde, die in C++ erstellt wurde? Ich habe die DLL, und eine TLB-Datei. Wie ich soeben gelesen habe, wird die TLB-Datei bei C++ erstellt.
Ich habe die DLL in meinem PRojekt unter "Verweise" eingebunden, habe dann einach mal probiert, eine Klasse (Inetrface) zu instanziieren und damit zu arbeiten. Hat funktioniert. Dann wollte ich eine andere Klasse (Interface) instanziieren und damit arbeiten. Bei der Instanziierung kommt dann die COMException.
Habe dann im Inetrnetz nachgesehen, da hatte es oft Probleme mit BEnutzerrechten gegeben, weil die Programme auf anderen rechnern laufen sollten. Das ist bei mir erst mal nicht der Fall.

Ich habe dann die DLL auch mit regsrv32 registriert, das hat aber nicht weitergeholfen.
Kann mir jemand einen Tipp geben?

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Bei der Instanziierung kommt dann die COMException.

Um mehr über den Fehler herauszufinden, müsstest Du den ErrorCode in der COMException auswerten.
Zu dem Wert der dort erscheint, müsste dann etwas dokumentiert sein, entweder in der Doku der Windows-API, oder in der Doku zur Dll.

Siehe auch: COMException-Klasse, Abschnitt Hinweise.

Je mehr Du über die Ausnahme / den ErrorCode in Erfahrung bringen kannst, desto besser stehen die Chancen, herauszufinden, was schiefläuft.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren

Hi, mein Fehlercode lautet

-2147221164

Wo finde ich dazu etwas??
Ín meiner DLL steht dazu nichts.

3.971 Beiträge seit 2006
vor 13 Jahren

Ist die COM-Dll registriert (regsvr32)?

Wie instanzierst du eine Klasse/Interface?

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren

Hallo, ich habe die REgistrierung mit regsrv32 zwar durchgeführt, ob die aber wirklich durchgeführt wurde (Erfolgsmeldung kam), weiß ich nicht wie ich da prüfen kann. Das muß ich dich in der Registry nachschauen können. Aber wo??
Ich habe auch schon in Foren gegoogelt, aber nicht gescheites gefunden.

Ich deklariere die Klasse in meiner Form, und dann wird die im Konstruktor der Form instanziiert.
Eine andere Klasse, mit der ich experimentiert habe, die auch in dieser DLL ist, funktioniert. Kann das mit den Pointern zusammenhängen, die in dem MEthoden drin sind, da diese DLL aus einem CPP - Projekt entstanden ist??