Почему программа должна запускаться при запуске из Windows, но не из командной строки?

#c #vba #command-prompt

#c #vba #командная строка

Вопрос:

Я написал небольшую программу на C в VS2k8. Когда я запускаю ее из Windows (дважды щелкните exe-файл), она работает нормально. Когда я захожу в командную строку и пытаюсь запустить ее, она зависает и в конечном итоге завершается сбоем. Я создал тестовые программы с простыми выводами, которые отлично работают в обоих направлениях.

Я чего-то не понимаю? Я относительно новичок в программировании. Я пытаюсь запустить эту программу с помощью команды командной строки VBA, но это приводит к тому же результату, что и командная строка.

Забавно, что сначала она работала нормально, пока я не зашел, чтобы изменить значение постоянной переменной и перестроил ее (я не думал, что это имеет какое-то отношение к этому, но я изменил ее обратно без успеха). Настройки не изменены.

Редактировать: я назвал это time.exe и чем copies.exe (когда я попытался скопировать и вставить код в новый проект). Фактический код составляет около 250 строк, не уверен, какая его часть могла бы вызвать проблему. Она открывает файл .csv, загружает информацию в векторы, а затем сравнивает векторы друг с другом (добавляя что-то в конец, если это соответствует определенным условиям). Затем она выводит файл в другой файл .csv.

Комментарии:

1. Закодируйте, пожалуйста. По крайней мере, простой пример, который воссоздает вашу проблему.

2. Как вы это назвали? Вы уверены, что не запускаете какую-нибудь команду windowsили shell с тем же именем?

3. Вы пытались ее отладить? Попробуйте запустить приложение из командной строки в windbg и посмотрите, где происходит сбой. Работает ли это при нажатии клавиши 5 в VisualStudio?

4. Выполняет ли код какую-либо проверку ошибок? Что произойдет, если файла .csv там нет?

Ответ №1:

Может показаться, что текущий каталог при запуске отличается, и это вызывает вашу проблему, поскольку вы делаете некоторые предположения о текущем пути или диске?

Комментарии:

1. Согласен. Попробуйте использовать абсолютный путь при загрузке вашего csv-файла и посмотрите, сработает ли это тогда.

2. Вот и все! Не могу поверить, что это было что-то настолько глупое. Огромное спасибо.

3. @0geek всегда простые вещи … 🙂