Аргументы в консольном приложении eMbedded Visual C ++ - PullRequest
1 голос
/ 11 апреля 2010

Я пытаюсь разработать простое приложение, которое будет читать некоторые файлы, предназначенные для Windows CE. Для этого я использую Microsoft eMbedded Visual C ++ 3. Эта программа (то есть для консоли) будет называться так:

/ Карта памяти / Тестирование> coms file.cmss

Как видите, file.cmss является первым аргументом, но на моем main у меня есть условие, чтобы показать справку (обычный, как использовать программу), если аргументы меньше 2:

int WinMain(int argc,char **argv) {
    if(argc < 2) {
        showhelp();
      return 0;
    }
}

Но когда я запускаю программу в командной строке Windows CE (используя все необходимые аргументы), я получаю содержимое showHelp(). Затем я проверил весь код, но он полностью правильный. Но я думаю, что eVC ++ не использует argc и argv[] для аргументов, тогда мне нужна помощь в определении аргументов для него.

Ответы [ 3 ]

0 голосов
/ 12 апреля 2010

Вам необходимо предоставить более подробную информацию о встроенной платформе. Встраиваемые платформы сильно отличаются от настольных компьютеров, особенно в отношении таких ресурсов, как ввод-вывод файловых систем, объем памяти и расположение оборудования (адресация).

Для разработки приложения WinCE необходимо подтвердить, что платформа поддерживает файловую систему. Многие встроенные системы этого не делают.

Далее следует изучить, как WinCE настроен на выполнение функции C: использует ли она Windows (WinMain), tmain, wmain или main? Также вам необходимо выяснить, как параметры передаются в программу. Программирование окон отличается от программирования на консоли.

0 голосов
/ 23 марта 2012

WinMain определяется как

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR    lpCmdLine, /* command line */
                   int       nCmdShow)

Возможно, вы захотите что-то похожее на

if (sscanf(lpCmdLine, "%s", filename) != 1) {
  showHelp();
}
0 голосов
/ 12 апреля 2010

«Основная» функция приложения Windows может принимать одну из нескольких различных форм. Есть WinMain, есть main и wmain. В вашем случае вы написали функцию WinMain, которая принимает классические main параметры (т.е. argc и argv).

Я бы рекомендовал вам изменить имя вашей функции на main и подтвердить, что ваш проект Visual Studio правильно настроен для «правильной» точки входа приложения.

...