Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Verweis auf nicht aufgelöstes externes Symbol

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.08.2008, 15:23 Uhr
Hans_Wurst



Hallo,

ich habe eine Funktion "PldaHardwareInit", in der ich die Funktion PldaInitializeInterrupt() aufrufen möchte. Diese Befindet sich in der Datei Plda_api.cpp und dessen Deklaration in der Plda_api.h. Alle

drei Dateien befinden sich im gleichen Ordner und sind auch in meinem Visual Studio 2008 - Projekt inkludiert.

Trotzdem bekomme ich diese Fehlermeldung:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_PldaInitializeInterrupt" in Funktion "_PldaHardwareInit"


Hätte jemand vielleicht eine Idee was ich falsch mache?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2008, 17:05 Uhr
ao

(Operator)


Scheint so, als ob im .H-File C-Name-Mangling (nicht C++) eingestellt ist. Steht der Prototyp der Funktion innerhalb eines "extern C"-Statements? Entfern das mal.
Dieser Post wurde am 11.08.2008 um 17:07 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.08.2008, 11:27 Uhr
Hans_Wurst



Danke ao,

das kann sehr gut möglich sein. Ich hatte mal einige *.c Dateien gedankenlos in *.cpp umbenannt. Hätte aber auch nicht wirklich gedacht, dass das einen Unterschied macht (was ich jetzt immer noch nicht so recht weiß).

Wenn ich das "extern C"-Statement entferne, bekomme ich eine recht ähnliche Fehlermeldung:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""unsigned long __cdecl PldaInitializeInterrupt(unsigned long,struct SPCIInterruptTransfer *,void *)" (?PldaInitializeInterrupt@@YAKKPAUSPCIInterruptTransfer@@PAX@Z)" in Funktion "_PldaHardwareInit"




Wenn ich die Datei wieder in *.c umbenenne, bekomme ich eine andere Fehlermeldung:
fatal error C1853: Die vorkompilierte Header-Datei "Debug\TestProject.pch" stammt von einer früheren Version des Compilers, oder der vorkompilierte Header stammt von C++, und Sie verwenden Ihn von C (oder umgekehrt)

Darauf hin habe ich ein wenig gegoogled und mir gedacht, ich schalte über "Projekt-> Eigenschaften -> Konfigurationseigensch.-> C/C++-> Vorkompilierte Header" auf nicht verwenden. Dann kann ich zwar compilieren, bekomme jedoch während der Programmausführung schon wieder einen Fehler:
Unbehandelte Ausnahme bei 0x00401a74 in TestProject.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x4d8d9fd0.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.08.2008, 12:12 Uhr
Hans_Wurst



Ich habe gerade gesehen, der Fehler
....stammt von einer früheren Version des Compilers.....
beruht daher, dass der Code in einer älteren Version (Visual Studio 2003) geschrieben wurde. Der Fehler erscheint nämlich auch wenn ich diese Dateien einfach nur in ein neues Projekt einbinde.

Die Frage ist allerdings ob ich diesen Code dann mit meinem Visual Studio 2008 überhaupt verwenden kann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: