Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   LNK2020 Fehler bei visual c++ 2005 beta (https://www.delphipraxis.net/27285-lnk2020-fehler-bei-visual-c-2005-beta.html)

crip 7. Aug 2004 04:36


LNK2020 Fehler bei visual c++ 2005 beta
 
Bei diesem wirklich einfachen code

Delphi-Quellcode:
//-------------------------------------------
//  DEFINES
//-------------------------------------------

#define WIN32_LEAN_AND_MEAN

//-------------------------------------------
//  INCLUDES
//-------------------------------------------

#include <windows.h>

int WINAPI WinMain (HINSTANCE hinstance,
                HINSTANCE hprevinstance,
                LPSTR lpcmdline,
                int ncmdshow
                ){

MessageBox(0,"inhalt","titel - hallo", MB_OK | MB_ICONEXCLAMATION);

return 0;
}
bekomme ich folgenden fehler

Code:
main.obj : error LNK2020: unresolved token (0A000011) "int __stdcall MessageBoxA(struct HWND__ *,char const *,char const *,unsigned int)" (?MessageBoxA@@$$J216YGHPAUHWND__@@PBD1I@Z)
main.obj : error LNK2001: unresolved external symbol "int __stdcall MessageBoxA(struct HWND__ *,char const *,char const *,unsigned int)" (?MessageBoxA@@$$J216YGHPAUHWND__@@PBD1I@Z)
koennte mir einer bitte sagen was ich da falsch mache ??

NicoDE 7. Aug 2004 05:05

Re: LNK2020 Fehler bei visual c++ 2005 beta
 
Zitat:

Zitat von crip
koennte mir einer bitte sagen was ich da falsch mache ??

Du hast
a) die Dokumentation nicht gelesen
b) noch nie mit C(++) gearbeitet ;)

In Delphi werden Funktions-Importe üblicherweise in interface deklariert und in implementation definiert (aus welcher DLL mit welchem Namen).
In C wird die Funktion im Header deklariert und mittels einer Importbiblithek (.lib) definiert (bzw. dadurch wird die definierte Funktion / das definierte Symbol aufgelöst).

1. Schau im MSDN/PSDK nach welche LIB Du brauchst
2. Geh in die Projekt-Option und stell sicher, dass sie aufgeführt ist
3. Falls bereits vorhanden, nimm den \LIB-Pfad das PSDKs in den Suchpfad für Bibliothekdateien auf


Gruss Nico

ps:
Delphi-Quellcode:
 c++ code
ist eher kontraproduktiv ;), nimm lieber [pre]

crip 7. Aug 2004 11:31

Re: LNK2020 Fehler bei visual c++ 2005 beta
 
zu 1) Du hast recht und dieses beispiel ist aus einem Buch, das ich schon relativ weit durchgelesen habe... nur funktionieren die Scripts aus dem buch weder in DEV-Cpp noch in Vc++ 20005
2) Und ja ich beschäftige mich mit c++ erst seit 3 Tagen weil wir selbst in einem Informatik LK der Stufe 12 nur "kinder kagge"(sorry) gemacht haben :) Wollte mal was komplizierteres versuchen.

Durch diese Paar Tage mit c++ fällt das verstehen der Umsetzung der WinApi (auch wenn es am anfang n blödes windows Fenster ist) viel leichter.


3) der Pfad zu der PSDK - lib Sammlung ist in "tools >Options >Directories > Projects & Sol... > VC++ Directories >Library files " drin. D.h. müsste es klappen ... oder meinst du was anderes ? 0_o

MfG

Crip

NicoDE 7. Aug 2004 13:35

Re: LNK2020 Fehler bei visual c++ 2005 beta
 
Zitat:

Zitat von crip
3) der Pfad zu der PSDK - lib Sammlung ist in "tools >Options >Directories > Projects & Sol... > VC++ Directories >Library files " drin. D.h. müsste es klappen ... oder meinst du was anderes ? 0_o

Das ist gut und richtig. Nun noch in den Eigenschaften des Projekts unter Linker / Input / Additional Dependencies nachsehen, ob die user32.lib aufgeführt ist.
Sollte es nicht gehen, mag die die Express-Version Dich nicht ;)


Gruss Nico

ps: war nicht als persönlicher Angriff gemeint, wir haben alle mal angefangen...

crip 7. Aug 2004 14:03

Re: LNK2020 Fehler bei visual c++ 2005 beta
 
Es hat geklappt!!! Dank!! ... zwar war die user32.lib nicht in der liste habe es dann eingefügt
muss nur noch zusehen, dass ich es als default eingestellt bekomme.

Herzlichen Dank

Crip

crip 9. Aug 2004 22:17

Re: LNK2020 Fehler bei visual c++ 2005 beta
 
Ich schaffe es nicht es global festzulegen. Wie mache ich das ? Müsste da noch was drin stehen ? weil andere programme will er auch nicht kompilieren z.b. bekomme ich einen Link fehler bei :

Code:
    winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
MfG Crip


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz