WinMain mit main überschreiben
-
Wie kann man die WinMain-Funktion in einer Windows-Anwendung mit der main-Funktion überschreiben, die sonst bei Konsolenprogrammen verwendet wird? (wie bei SDL)
-
Das geht nicht, die Funktion muss zwar nicht WinMain heißen, aber die Parameterliste und der Rückgabewert sind fest.
Mach doch einfach sowas:
int main( int argc, char* argv[] ) { //dein programm return 0; } int WinMain( HINSTANCE, HINSTANCE, LPCSTR, int ) { //geht so nicht bei allen Compilern, musst ggf. selber die Commandozeile parsen return main( __argc, __argv ); }Aber warum willst du das so haben?
-
ich hätte da ne Möglichkeit für dich, wie du auch bei ner Windows-Anwendung die normale main-Funktion nutzen kannst (du verwendest natürlich trotzdem noch die WinMain, aber sieh selbst):
#include <windows.h> int main(int argc, char** argv) { // Hier Code für das Hauptprogramm einfügen return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow) { LPWSTR cmdline = GetCommandLineW(); int iArgc; LPWSTR* szArgvW = CommandLineToArgvW(cmdline, &iArgc); char** szArgvA = new char*[iArgc]; for (int n = 0; n < iArgc; n++) { szArgvA[n] = new char[128]; WideCharToMultiByte(CP_ACP, 0, szArgvW[n], -1, szArgvA[n], 128, NULL, NULL); } LocalFree(szArgvW); int ret = main(iArgc, szArgvA); for (int m = 0; m < iArgc; m++) delete[] szArgvA[m]; delete[] szArgvA; return ret; }
-
http://gombolo.go.funpic.de/gidx/
Die machen das auch. Frag die halt mal.

-
Aber warum willst du das so haben?
Ich will statt der ganzen Commandline die Parameter einzeln haben.
Mit __argc und __argv funktionierts. Danke!

-
ProGamer.Coder schrieb:
Wie kann man die WinMain-Funktion in einer Windows-Anwendung mit der main-Funktion überschreiben, die sonst bei Konsolenprogrammen verwendet wird? (wie bei SDL)
Warum willst Du das denn überhaupt machen ?