Visual Basic Klasse in C++ nutzen

Hackbard_C

Grünschnabel
Hi,

ich stehe vor dem Problem, daß ich eine Klasse in VB.NET habe, diese nun aber in Visual C++ nutzen möchte... ich habe schon gelesen, daß des möglich sein soll, bisher aber keine Anleitung dazu gefunden - vielleicht weiß ja hier wer Rat?

Vielen Dank im Vorraus
Hackbard_C
 

Nico Graichen

Erfahrenes Mitglied
Hi

Du musst die entsprechenden Klassen als DLL kompilieren. Wenn du die DLL unter C++.NET nutzen willst, kannst du sie ganz normal als .NET-Assembly referenzieren. Um sie unter Native C++ zu nutzen müssen sowohl die DLL als auch die Klassen COMVisible sein und die DLL mit regasm.exe registriert werden.
 

Hackbard_C

Grünschnabel
Und wie mach ich das?

Also als DLL kompilieren war mir klar, das hatte ich auch schon gemacht.. einfach bei VB als Klassenbibliothek.. fertig - aber wie/wo binde ich die nun bei C++ ein?

Via #import geht nicht.. als .NET-Referen auch nicht.. ich find nirgendwo einen Punkt der etwas mit "Assembly" zu tun hat...

Hackbard_C
 

Hackbard_C

Grünschnabel
Letzteres... .NET.. . sowohl VB als auch C++... deswegen dachte ich auch, daß das (eigentlich) ganz einfach sein müßte, da doch in .NET eh alles in diese Common Language übersetzt wird..

*edit*
/clr als Compiler-Option ist auch schon aktiviert.

Und als Fehlermeldung bekomme ich btw:
fatal error C1083: Cannot open type library file: 'd3plotreader.dll': Fehler beim Laden der Typbibliothek/DLL.

*edit2*

Ok, habs jetzt als Verweis eingefügt bekommen.. und dass läßt sich kompilieren. .das ist ja schon mal was.. aber wie nutz ich meine Klasse nun?^^ Wenn ich es wie eine normale C++-Klasse nutzen will geht es nicht :S
 
Zuletzt bearbeitet:

MCoder

Erfahrenes Mitglied
aber wie nutz ich meine Klasse nun?^^ Wenn ich es wie eine normale C++-Klasse nutzen will geht es nicht :S
Also, wenn du z.B. die using-Direktive einfügst:
C++:
using namespace name_des verweises;
solltest du die Klasse eigentlich benutzen können, oder wie genau äußert sich das Problem?

Gruß
MCoder
 

Hackbard_C

Grünschnabel
Jop, das hatte ich auch schon eingefügt... aber wenn ich jetzt
Code:
d3plotReader reader("meinFile.txt");

benutzen will, dann bekomme ich folgende Fehlermeldung:

error C2882: 'd3plotReader' : illegal use of namespace identifier in expression
error C2146: syntax error : missing ';' before identifier 'reader'
error C3861: 'reader': identifier not found

Wobei natürlich die erste Fehlermeldung die verursachende ist..

meine Klasse heißt in VB "d3plotReader"... deswegen habe ich die DLL auch "d3plotReader.dll" genannt.. aber wie gesagt.. nun kann ich die Klasse nicht nutzen.. und auch mit mit "d3plotReader::[xx]" finde ich nicht meinen Konstruktor o.ä.