PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] CLR Oberfläche + native Bibliothek


Silpion
2006-12-04, 21:18:47
Hallo,

ich nutze VS2005 Express Edition und habe in einer Solution zwei Projekte:
Ein CLR-Projekt, das die Oberfläche bietet und eine native Win32 Klassensammlung, die ich als Bibliothek einbinden möchte.

Ich habe dies schon öfter mit Win32 Projekt und einer Win32 statischen Bibliotheken gemacht, aber mit der Kombination CLR + nativ will es nicht funktionieren.

Ich bekomme Linker-Fehler und weiß nicht, wie ich diese beheben kann:
1>Linking...
1>clr_gui.obj : error LNK2028: unresolved token (0A0002ED) "public: __thiscall Core::Hough::~Hough(void)" (??1Hough@Core@@$$FQAE@XZ) referenced in function "public: void * __thiscall Core::Hough::`scalar deleting destructor'(unsigned int)" (??_GHough@Core@@$$FQAEPAXI@Z)
1>clr_gui.obj : error LNK2028: unresolved token (0A0002EE) "public: __thiscall Core::Hough::Hough(class Core::Image *,unsigned int,double,unsigned int,double)" (??0Hough@Core@@$$FQAE@PAVImage@1@ININ@Z) referenced in function "private: void __clrcall clr_gui::Form1::houghToolStripMenuItem_Click(class System::Object ^,class System::EventArgs ^)" (?houghToolStripMenuItem_Click@Form1@clr_gui@@$$FA$AAMXP$AAVObject@System@@P$AAV EventArgs@4@@Z)

Welche Einstellungen fehlen mir oder sind falsch?

Gast
2006-12-04, 22:20:42
CLR-Projekt:
Common Properties: C++ Projekt als Reference hinzufügen

C++Projekt:
Mit "_USING_CLR" kompilieren

Meistens tut man sich mit Wrapperklassen was gutes. ;)

ScottManDeath
2006-12-04, 23:34:33
@Silpion:

Lass mich raten, Du machst Line Detection? ;D

Silpion
2006-12-04, 23:36:12
Hmm... ich habe jetzt herausgefunden, woran es liegt:

Ich habe die Klassen meiner nativen Bibliothek in einen Namespace gesetzt. Ohne klappt es problemlos. :conf2:

Kann man native Namespaces wirklich nicht verwenden oder kuriere ich damit nur Symptome, für die es auch eine andere Lösung gibt?

Wie funktioniert das mit den Wrapper-Klassen?

ScottManDeath
2006-12-04, 23:56:13
Du hast dann eine C++/CLI Klasse, die eine native Member hat. Dann rufen die Methoden der C++/CLI Klasse Methoden des native Members auf.

Silpion
2006-12-05, 00:23:54
Ah, prima, das klingt gut.

Wird nicht nur Geraden-Erkennung, das ist nur der erste Schritt (nach der Canny-Kantenerkennung). ;)

ScottManDeath
2006-12-05, 00:51:49
Hehe, ich hab das letzens als Hausaufgabe für die Uni gemacht. Klappt recht gut, allerdings ist das Parametertweaken Sackgang :(

Was machst Du dann noch?

Silpion
2006-12-06, 16:50:55
Es geht darum bestimmte Objekte (die allerdings komplexer sind, als einfache Geraden oder Kugeln) in 3D-Röntgen-Volumen zu erkennen, inklusive deren (möglichst genaue) Position/Lage.

ScottManDeath
2006-12-06, 23:55:47
Hört sich nach >= 2D Hough Space, und damit crunchen an =)

Machst Du das als Forschung oder als Arbeit?

Silpion
2006-12-07, 01:26:33
Bin HiWi-Forscher :)

> 2D werde ich für den Anfang vermeiden, der User soll nicht zu einer Kaffeepause verdonnert werden. ;)