ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
4865
4865
EMPFEHLEN
-
28.07.06 16:12 #1
- Registriert seit
- Jul 2006
- Beiträge
- 35
Hallo zusammen,
Ich bin mit meinem latein am ende
. Hoffe ihr könnt mir helfen. Hab auch schon in Foren gesucht, Microsoft Hilfe benutzt und es haben auch viele diesen Fehler. Eigentlich versteh ich was Fehler bedeuten, aber bei Linkerfehlern bin ich überfragt. Die Beschreibung des Fehlers (http://support.microsoft.com/default...;en-us;q148652) hilft auch nicht viel.
Also, Ich benutze Microsoft Visual Studio 2005 (C++). Ein CLR-Konsolen-Projekt.
Hier Ausschnitte aus meinem Code (in der main() steht noch nichts):
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
//CbwLicence.h------------------------------------------------------------------------- #ifndef _CbwLicence_ #define _CbwLicence_ #include <vcclr.h> #include <stdlib.h> using namespace System; #include "CKeyINI.h" #include "NumberSystem34.h" #include "Crypt.h" class CbwLicence { // [..] }; #endif //NumberSystem34.h------------------------------------------------------------------------- #ifndef _NumberSystem34_ #define _NumberSystem34_ #define _BASE 34 #include <math.h> using namespace System; namespace NumberSystem34 { // [..] } #endif //Crypt.h------------------------------------------------------------------------- #ifndef _Crypt_ #define _Crypt_ using namespace System; using namespace System::Security::Cryptography; using namespace System::Text; namespace Crypt { // [..] } #endif
Und das ist dan die Meldung vom Linker:
Code :1 2 3 4 5 6 7 8 9 10 11 12
Kompilieren... CbwLicence.cpp Verknüpfen... CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::ByteArrayToString(cli::array<unsigned char >^)" (?ByteArrayToString@Crypt@@YMP$AAVString@System@@P$01AE@Z) ist bereits in CbwLicence.obj definiert. CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::md5(class System::String ^)" (?md5@Crypt@@YMP$AAVString@System@@P$AAV23@@Z) ist bereits in CbwLicence.obj definiert. CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::sha1(class System::String ^)" (?sha1@Crypt@@YMP$AAVString@System@@P$AAV23@@Z) ist bereits in CbwLicence.obj definiert. CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::sha256(class System::String ^)" (?sha256@Crypt@@YMP$AAVString@System@@P$AAV23@@Z) ist bereits in CbwLicence.obj definiert. CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::ByteArrayToString(cli::array<unsigned char >^)" (?ByteArrayToString@Crypt@@$$FYMP$AAVString@System@@P$01AE@Z) ist bereits in CbwLicence.obj definiert. CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::md5(class System::String ^)" (?md5@Crypt@@$$FYMP$AAVString@System@@P$AAV23@@Z) ist bereits in CbwLicence.obj definiert. CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::sha1(class System::String ^)" (?sha1@Crypt@@$$FYMP$AAVString@System@@P$AAV23@@Z) ist bereits in CbwLicence.obj definiert. CKeyINI.obj : error LNK2005: "class System::String ^ __clrcall Crypt::sha256(class System::String ^)" (?sha256@Crypt@@$$FYMP$AAVString@System@@P$AAV23@@Z) ist bereits in CbwLicence.obj definiert. D:\Projects\bwLicence\test_CbwLicence\Debug\test_CbwLicence.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
Ich hoffe ihr könnt mir helfen.
Gruß Andrej
p.s. ahja, ich binde ja noch ne klasse CKeyINI ein. also über die klasse mekert er nicht. nur über die namespaces bzw. auch wenn ich die Funktionen nicht in das namespace packe kommt der Fehler.
Und wenn ich ein anderes clr-projekt erstelle und nur eines/beide namespaces direkt in die Hauptdatei einbinde und in der main() benutze, dann klappts auch einwandfreiGeändert von Andrej Dyck (28.07.06 um 16:17 Uhr) Grund: vergessen ^^
-
31.07.06 09:19 #2
- Registriert seit
- Jul 2006
- Beiträge
- 35
Ok, ich habe das Problem gelöst. Was es war? Also:
Ich habe die Funktionen in der .h Datei Deklariert und Definiert.
z.b.
Code :1 2 3 4 5 6 7 8 9
/* .h */ namespace Crypt { String^ md5(String^szStr) { /* [..] */ } }
das mochte der MVS nicht. Hab vorher mit Borland (da gings) gearbeitet und das auch früher so gemacht, deshalb wusste ich nicht, weshalb der Linkerfehler überhupt kam.
Lösung:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* .h */ namespace Crypt { String^ md5(String^szStr); } /* .cpp */ #include "Crypt.h" String^ Crypt::md5(String^szStr) { /* [..] */ }
MfG Andrej
P.S. Quit
Ähnliche Themen
-
Mysql++ Linker Fehler
Von Sapd im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 02.06.10, 09:23 -
Linker Fehler GetModuleFileNameExA@16
Von Ava-chan im Forum C/C++Antworten: 2Letzter Beitrag: 19.03.10, 13:28 -
Linker Fehler... hurra
Von NotThatJenny im Forum C/C++Antworten: 1Letzter Beitrag: 03.02.08, 14:35 -
[C] VS05 Linker Error LNK2005
Von Viper2009 im Forum C/C++Antworten: 7Letzter Beitrag: 22.08.07, 14:43 -
[C++] Linker Problem (LNK2005)
Von frager im Forum C/C++Antworten: 3Letzter Beitrag: 20.07.04, 20:08





Zitieren
Login






