2013-12-06 2 views
0

Мы можем использоватьКак передать строки или аргументы программе во время выполнения без API в C?

int main (int argc, char* argv[]) 

передать строки в программу, когда

  • перетащить файл и поместите его на иконку исполняемого, если вы хотите, чтобы заполнить ARGV [1] с FilePath.

  • или запустите программу с помощью командной строки: Program.exe C:\File.txt, чтобы заполнить argv [1] файлом.

Но, возможно ли получить путь к файлу, если вы перетащите его в «Консольное окно» во время выполнения?

Если мой пост не ясен, пожалуйста, помогите мне его переиздать.

Спасибо.

+0

Не знаю, я понимаю проблему. Как вы находитесь в «Консольном окне» и выполняете одновременно? – KeithSmith

+0

Является ли этот вопрос об изменении 'argv' извне вашей программы во время выполнения? – Constantin

+0

@KeithSmith Не командная строка. Это консольное приложение, составленное из GCC/mingw32 –

ответ

2

Получение пути к файлу при перетаскивании & Падение на исполняемый значок уже является функцией GUI, о которой идет речь, и, следовательно, «специфичная для ОС» (хотя и широко распространенная).

Обычный стандарт C не имеет понятия «Консольное окно» в первую очередь (самое близкое к тому, что это «буферизированный ввод-вывод»), поэтому ответ на ваш вопрос «нет». Не выходя за пределы стандартной библиотеки ISO/IEC 9899, ​​то есть просматривая ncurses (Unix-ish) или любые другие ОС Windows на этой арене.

Во всяком случае, и это важный момент, как только любой исполняемый выполнения (и, таким образом, имея «консольное окно», чтобы говорить о), main() уже введен, так что нет никакого способа, чтобы получить что-нибудь через его параметры (argv).

1

Функция перетаскивания - это дополнение среды «Window Shell». Это не элемент, который обрабатывается стандартным образом и не может контролировать исходный код программы.

Менеджер окон определит, какая графическая программа получит событие перетаскивания. Затем эта программа решает что-то сделать.

В программе «CMD.EXE» на большинстве современных оконных компьютеров она обрабатывает это событие, просматривая объект прикрепленной файловой системы события, а затем извлекает абсолютную строку пути к этому файлу.

В программе «Windows Shell» он проверяет, может ли принимающий объект обрабатывать сброшенный объект, и если да, то он обычно передает путь отбрасываемого объекта к принимающему объекту в качестве параметра командной строки. Однако, большая часть этого делается по соглашению, вы, возможно, не получите возможность стилизовать это соглашение к вашим конкретным прихотям.

Ключевыми элементами, которые следует учитывать, является то, что в основном программы, которые должны выполнять работу, не связаны с программами, которые вы пишете. Если вы пишете CMD.EXE, вы можете изменить поведение по своему усмотрению. К сожалению, поскольку вы не пишете CMD.EXE, вы должны жить с поведением, которое кто-то еще предоставил.

Смежные вопросы