Laden...

Assembly per COM in Unmanaged C++ einbinden

Erstellt von Golo Roden vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.437 Views
Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren
Assembly per COM in Unmanaged C++ einbinden

Hallo,

ich habe in .NET eine Assembly geschrieben, die ich als COM-Server für VB6 bereitstellen möchte. So weit, so gut. Das mit COM hat nun auch alles funktioniert, allerdings sagt mein VB-Kollege, dass er die DLL nicht einbinden könne, es käme die Meldung, dass kein Einstiegspunkt gefunden würde.

Inzwischen habe ich nun den Tipp bekommen, dass ich eine DEF-Datei benötige, die ich auch angelegt habe.

Bevor ich die DLL mitsamt der DEF nun an meinen Kollegen schicke, würde ich selbst gerne ausprobieren, ob es läuft. Allerdings steht mir kein VB6 zur Verfügung, ich habe aber ein Unmanaged Win32-C++-Konsolenprojekt im VS2005 angelegt - bloß, wie bekomme ich die DLL da nun rein?

Beziehungsweise, gibt es eine eventuell einfachere Möglichkeit, das ganze zu testen?

Danke,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 18 Jahren

Hallo,

so, ein simples VBS tut's - interessanterweise auch ohne DEF-Datei:

set o = CreateObject("VBClassicComInteropDemo.ComInterop")
Wscript.Echo o.GetString("Hallo")

Bleibt die Frage, was VB6 für ein Problem hat ...

Viele Grüße,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

S
8.746 Beiträge seit 2005
vor 18 Jahren

Eine .def-Datei ist eigentlich nur notwendig um eine DLL zu erstellen. Sie dient dem C++-Linker als Eingabe um z.B. zu bestimmen, welche Funktionen in der DLL nach außen sichtbar sind.

Anstelle einer .def-Datei kann man aber auch die entsprechenden Funktionen via _declspec(dllexport) auszeichnen.

Daneben kann die .def-Datei auch noch z.B. die StackSize und Versionsinformationen und ähnliches definieren.

Für die Benutzung einer DLL hat die .def eigentlich keine Relevanz.