Pewnie już dawno sobie poradziłeś, bo te rzeczy opisywane są w każdym chyba tutorialu - i to na samym początku - ale jeśli nie, to przykład poniżej chyba powinien rozwiać wątpliwości. Jeśli ciągle nie masz pojęcia co to za gwiazdki i co one oznaczają, to zabierz się poważnie za jakiś kurs podstaw C/C++, zanim zajmiesz się WinAPI...
Kod:
#include <iostream>
using std::cout;
int main(int argc, char** argv) {
cout << "Podales " << (argc - 1) << " dodatkowych argumentow.\nLista wszystkich:\n";
for (int i = 0; i < argc; ++i) {
cout << "argv[" << i << "] == \"" << argv[i] << "\"\n";
}
return 0;
}
Kod skompilowany do pliku cpp.exe uruchamiam:
Kod:
$ ./cpp.exe argument arg2 --version -O2 "ze spacjami" 'tez mozna'
I dostaję:
Kod:
Podales 6 dodatkowych argumentow.
Lista wszystkich:
argv[0] == "./cpp.exe"
argv[1] == "argument"
argv[2] == "arg2"
argv[3] == "--version"
argv[4] == "-O2"
argv[5] == "ze spacjami"
argv[6] == "tez mozna"
A bez argumentów:
Kod:
$ ./cpp.exe
Podales 0 dodatkowych argumentow.
Lista wszystkich:
argv[0] == "./cpp.exe"
Uwaga, znak $ to po prostu prompt, a nie znak, który powinieneś wpisywać przed nazwą programu aby go uruchomić. W konsoli cmd.exe będziesz miał raczej "ŚCIEŻKA >". Pamiętaj również, że na konsoli cmd.exe użycie "./cpp.exe" wyrzuci błąd, gdyż konsola owa nie rozumie co "./" oznacza - opuść te dwa znaki po prostu i wszystko będzie w porządku. Ewentualnie możesz użyć ".\" - ale nie ma powodu, żeby nie napisać po prostu "nazwa_programu" lub "nazwa_programu.exe". ![Wink](images/smilies/wink.png)
W programie okienkowym nie dostajesz ładnej tablicy, ale jeden długi c-string z całą ścieżką:
Windows Main and Command Line Parameters - C
Nie trać jednak nadziei, bo to nie wszystko: Retrieving command line parameters from WinMain in win32
Ok, a jakbym chciał uruchamiać program przez właśnie dopisanie argumentu do skrótu, a nie przez konsolę?
Na jedno wychodzi.