Задача такая - программа должна читать некий файл формата *.baw и производить какие-то свои действия.
Есть класс - bawReader и публичный метод open(QString), который открывает файл по его имени. Программа работает.
И вот, лежит у меня в папке файл, например file.baw, жму я на него правой кнопкой и выбираю "Открыть с помощью BawReader". Этим действием программа BawReader вызывается с аргументом, содержащим имя файла, который требуется открыть.
Собственно, цель - извлечь этот самый аргумент и передать его в функцию open.
И у меня ДАЖЕ есть код, который работает. Вот он: (осторожно, индусский код)
#include "bawreader.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
BawReader w;
w.show();
QString str;
for (int j = 0; j < sizeof(argv); j++){
str.append(argv[j]);
}
if (!str.isEmpty()){
QStringList strlist = str.split(".exe");
if (strlist.count() > 1){
if (strlist.at(1).contains(".baw")) w.open(strlist.at(1));
}
}
return a.exec();
}
Первое - QtCreator ругается на "for (int j = 0; j < sizeof(argv); j++)", говорит, что D:\Qt\BawReader\main.cpp:12: предупреждение: comparison between signed and unsigned integer expressions [-Wsign-compare]
Второе - код ужасно индусский, однако прекрасно работает. Вот посоветуйте, не трогать его (пусть работает), или делать по-нормальному (тогда подскажите, как)?