DLL mit VC++6 fuer Nutzung unter VB6?

Hallo,

ich habe vor, bestimmte Funktionen, die ich mit Visual Basic 6 geschrieben habe, in eine DLL auszulagern. Allerdings wäre es günstiger, diese Funktionen in Visual C++ 6 umzusetzen und damit die DLL zu erzeugen.

Frage 1:

Ist es überhaupt möglich, ohne weiteres mit C++ geschriebene DLLs in VB, Delphi, … einzubinden? Mit OCX geht’s ja auch. Ist die einzige Voraussetzung die, daß die Datentypen eventueller Parameter in allen Sprachen gleich sind?

Frage 2:

Kann ich eine mit VB geschriebene Klasse in eine DLL packen? Müßte doch eigentlich gehen, oder?

Frage 3:
Kann mir das mal jemand an VC++6 demonstrieren? :wink: Ich meine: Hat jemand gerade ein VC++6-Projekt einer DLL da, das eine Klasse enthält, deren einzige Funktion bei Aufruf „TRUE“ zurückliefert, den übergebenen String per Meldungsfenster ausgibt und diesen zusätzlich in die einzige Eigenschaft des Klassenobjekts schreibt, so daß man ihn dort auslesen kann?
Das würde mir wirklich sehr weiterhelfen!

Na mal sehen, ich bin für jeden Hinweis dankbar!

Kristian

Hallo,

ich habe vor, bestimmte Funktionen, die ich mit Visual
Basic 6
geschrieben habe, in eine DLL auszulagern.
Allerdings wäre es günstiger, diese Funktionen in Visual
C++ 6
umzusetzen und damit die DLL zu erzeugen.

Frage 1:

Ist es überhaupt möglich, ohne weiteres mit C++ geschriebene
DLLs in VB, Delphi, … einzubinden?

Das war ursprünglich auch der Sinn von DLLs :smile:
Also Ja.

Mit OCX geht’s ja auch.
Ist die einzige Voraussetzung die, daß die Datentypen
eventueller Parameter in allen Sprachen gleich sind?

Nicht ganz, aber das ist schon mal sehr viel. Es spielt auch noch die Aufrufkonvneton eine Rolle, mit „stdcall“ bist du gut bedient… VB verlangt sowieso DLLs und Strings im C-Format.

Frage 2:

Kann ich eine mit VB geschriebene Klasse in eine DLL packen?
Müßte doch eigentlich gehen, oder?

Nö.
Ausser es ist eine ActiveX-Klasse. Dann müsstest du aber eine Avtive DLL (eben ActiveX-DLL) erstellen. Die kann (zumindest in Delphi auch „analoge“ [nicht COM-basierte] Methoden exportieren.
In richtiger OOP, die in VB ja nicht 100% unterstützt ist, würdest du bei dem was du vorhast eh nur einen Zeiger auf eine Objektinstanz exportieren. Das geht zwar beispielsweise in Delphi aber ob andere Apps, die mit anderen Tools gecoded sind was damit anfangen können bezwfeifle ich.

Bei der dritten Frage kann ich dir nicht helfen.