2013-07-30 8 views
5

Zastanawiam się, czy istnieje jakiś dobry sposób na użycie wbudowanych _argumentów i _argumentów (jak w Visual C++) w MinGW (już włączam windows.h), czy będę musiał zrobić coś bardziej zaangażowanego w dostęp do tych parametrów. ja tak bardzo chciałbym tylko mieć tę pracę kodu w MinGW (ale nie zawsze to, czego pragniemy):Używanie __argc i __argv w MinGW

#include <windows.h> 

extern int main(int argc, char* argv[]); 

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT) 
{ 
    return main(__argc, __argv); 
} 
+1

Użyj poleceń "GetCommandLineW' i" CommandLineToArgvW', aby pobrać równoważne wartości. –

+0

Dlaczego szerokie wersje? – Rollie

+0

Zgodnie z literaturą, którą widziałem, regularne wersje ANSI tych funkcji mogą nie istnieć. –

Odpowiedz

4

te nie są „builtins” są dostarczane przez zmienne globalne środowisko wykonawcze C. Są one zadeklarowane w <stdlib.h> zarówno w nagłówkach bibliotek Visual C++, jak iw Stephan's MinGW distro. Jeśli nie są one zadeklarowane w Twojej kopii <stdlib.h>, po prostu je zadeklaruj.

+0

Dzięki, nie byłem świadomy tej konkretnej dystrybucji. Tylko ze względu na kompletność, czy mógłbyś pokazać mi (lub powiązać ze mną gdzieś, co mi pokaże), jak samemu je zgłosić? Dzięki wielkie! –

+0

@MaxFeldkamp może używając 'extern'. Podobnie jak w 'extern char ** argv;'. Nie otrzymałem żadnych wiadomości o nierozwiązanych symbolach ze standardowym mingw. – mlt

+0

Udało mi się skompilować, ale SEGV w środowisku wykonawczym z '_argumentem' i' _argumentem'. Jednak udało mi się bez problemu używać argumentów "_argc" i "_argv" (jedno podkreślenie zamiast dwóch). – cxw