leere winapi winmain funktion funzt nicht
-
ich hab neu mit c++ angefangen und wollte nun mit der windowsprogrammierung anfangen, hatte aber schon bei einer leeren winmain funktion einen fehler.?
#include <windows.h> int WINAPI WinMain() { return 0; }
--------------------Konfiguration: neu - Win32 Debug--------------------
Kompilierung läuft...
neu.cpp
C:\.....\neu.cpp(5) : error C2731: 'WinMain' : function cannot be overloaded
C:\.....\neu.cpp(4) : see declaration of 'WinMain'
Fehler beim Ausführen von cl.exe.neu.exe - 1 Fehler, 0 Warnung(en)
-
ich denk ma das du die parameter von winmain vergessen hast:
WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
-
wenn ich die eingebe habe ich 2 fehler
-
#include <windows.h> int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { return 0; }
-
funzt leider auch nicht die fehleranzeige bleibt
trotzdem danke
-
kann es sein das du schon irgendwo eine winmain hast
-
Die Aufrufskonvention WINAPI ist veraltet (stammt noch aus Windows 3.1 Zeiten).
Heute schreibt man CALLBACK. Probier das mal.
-
beim code wie ganz oben inklusive der parameter der winmain und der ersetzung von winapi durch callback tritt nun folgender fehler auf
--------------------Konfiguration: neu - Win32 Debug--------------------
Kompilierung läuft...
neu.cpp
Linker-Vorgang läuft...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/neu.exe : fatal error LNK1120: 1 unresolved externals
Fehler beim Ausführen von link.exe.
-
hasste wahrscheinlich nen konsolen projekt erstellt, musste aber nen windows-projekt erstellen.
Was verwendeste du für ne Oberfläche?
-
Power Off schrieb:
Die Aufrufskonvention WINAPI ist veraltet (stammt noch aus Windows 3.1 Zeiten).
Heute schreibt man CALLBACK. Probier das mal.
Am besten du schreibst gar nix hin, macht MSDN zumindest so.
-
Power Off schrieb:
Die Aufrufskonvention WINAPI ist veraltet (stammt noch aus Windows 3.1 Zeiten).
Heute schreibt man CALLBACK. Probier das mal.ist vermutlich compiler abhängig den in meiner winddef steht
#define WINAPI __stdcall #define CALLBACK __stdcall
-
bei diesem code tritt nun folgender fehler auf:
#include <windows.h> int CALLBACK __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return 0; }
Linker-Vorgang läuft...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/hoffn2.exe : fatal error LNK1120: 1 unresolved externals
Fehler beim Ausführen von link.exe.(ich bin mir sicher dass ich eine win32 anwendung habe!)
könnte das irgendwie mit dem compiler zusammen hängen? und wenn
könnte mir jemand einen guten empfehlen?
danke
-
entweder callback oder stdcall denn callback == stdcall und zweimal brauchst du es nicht schreiben
researchk schrieb:
(ich bin mir sicher dass ich eine win32 anwendung habe!)
glaub ich nicht
researchk schrieb:
könnte das irgendwie mit dem compiler zusammen hängen? und wenn
könnte mir jemand einen guten empfehlen?empfehlen könnt ich dir nur ein grundlagen buch oder tutorial (nicht böse nehmen)
-
wenn ich winapi od callback weglasse sagt der compiler ihm fehle genau dieses wort
-
researchk schrieb:
wenn ich winapi od callback weglasse sagt der compiler ihm fehle genau dieses wort
du sollst ja auch nur eins weglassen.
hab jetzt mal vc6 installiert.
anleitung:
neu-->projekte->win32 anwendung-->leeres projekt
projekt-->dem projekt hinzufügen-->neu-->*.cpp#include <windows.h> int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return 0; }
kompilieren
fertig
-
researchk schrieb:
(ich bin mir sicher dass ich eine win32 anwendung habe!)
Garantiert nicht! Du hast 100%ig eine Konsolenanwendung gewählt. Denn genau das sagt Dir diese Fehlermeldung:
researchk schrieb:
error LNK2001: unresolved external symbol _main
Der Linker sucht eine main Funktion, findet sie bei Dir aber nicht.