Следующий фрагмент взят из небольшого приложения, которое я написал с использованием фреймворка Qt. Идея состоит в том, что приложение может быть запущено в пакетном режиме (то есть вызвано скриптом) или может быть запущено в интерактивном режиме.
Поэтому важно, чтобы я мог анализировать аргументы командной строки, чтобы узнать, в каком режиме работать и т. Д.
[Изменить]
Я отлаживаю с помощью Qt Creator 1.3.1 в Ubuntu Karmic. Аргументы передаются обычным способом (то есть путем добавления их через настройки «Project» в IDE Qt Creator).
Когда я запускаю приложение, кажется, что аргументы не передаются приложению. Код ниже, это фрагмент моей функции main ().
int main(int argc, char *argv[])
{
//Q_INIT_RESOURCE(application);
try {
QApplication the_app(argc, argv);
//trying to get the arguments into a list
QStringList cmdline_args = QCoreApplication::arguments();
// Code continues ...
}
catch (const MyCustomException &e) { return 1; }
return 0;
}
[Update]
Я обнаружил проблему - по какой-то причине, хотя argc корректен, элементы argv являются пустыми строками.
Я поместил этот небольшой фрагмент кода, чтобы распечатать элементы argv - и с ужасом увидел, что они все пусты.
for (int i=0; i< argc; i++){
std::string s(argv[i]); //required so I can see the damn variable in the debugger
std::cout << s << std::endl;
}
Кто-нибудь знает, как я могу получить аргументы командной строки в моем приложении?