Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка Windows Forms > Как получить параметры командной строки в VC++ |
Автор: Курсант 5.10.2015, 15:25 | ||||
Доброго времени суток! Решил к своей программе добавить возможность вытаскивать имя файла из командной строки. Однако параметры командной строки получить из тела метода не могу. То есть я вижу, что параметры командной строки передаются приложению, и выглядит это так:
Однако из модуля класса Form1 я не могу получить доступ к переменной args (если я правильно понял, это переменная ссылочного типа?).
А из тела функции main я не могу получить доступ к свойствам объекта Form1, чтобы туда записать или копию args, или значение некоторого элемента массива. Вопрос: как быть? Как получить параметры командной строки в методе какого-нибудь компонента окна (я так понимаю, лучше всего в методе Load компонента Form1). Спасибо за внимание. |
Автор: Курсант 8.10.2015, 09:00 | ||||||||||
Проблема решена, придумал работающий костыль (а может и не костыль). Способ решения: 1. В функции main () вызываем конструктор объекта Form1 с параметром args.
Исправляем конструктор Form1 таким образом, чтобы он принимал аргумент args и вызывал с ним функцию InitializeComponent ()
В классе Form1 создаём поле fargs для хранения аргументов.
Функцию InitializeComponents() исправляем таким образом, чтобы она принимала аргумент args и сохраняла его в поле fargs объекта Form1.
В обработчике Form1.Load проверяем размер массива fargs, и если он больше нуля, открываем файл, имя берём из первого элемента массива fargs.
Т.о. если пользователь запустил программу перетаскиванием на неё файла, созданного этой программой, то программа загрузит этот файл для редактирования/работы. |