| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > chdir.exe |
| Автор: Знак 3.6.2005, 12:12 | ||
| Сталкнулся с проблемкой С++ никак нехочет менять диск под досом ну нивкакую!! Под оболочкой С++ по умолчанию всё верно .. меняет дисковод и С и D ... А в DOS только на A и B ... Хоть ты тресни. Что делать непойму.. Замысел был сл. В коммандную строку вписываешь ... chdir.exe C: или myprog.exe f: Ну и переходишь на диск.. А тут еще и int в char непереводятся.. МОжет кто облегчит мои страдания и кинет текст проги..? Вот моя прога недоделана переделана...
|
| Автор: Дрон 3.6.2005, 12:17 |
| Во первых, не стоит называть прогу chdir.exe, т.к. есть встроенная команда chdir. Во вторых, main не принимает аргумент типа int, посмотри документацию. |
| Автор: bel_nikita 3.6.2005, 12:19 |
| вместо int main(int re) надо main( int argc, char *argv[ ], char *envp[ ] ) |
| Автор: Дрон 3.6.2005, 12:23 |
| bel_nikita Точно Только последний параметр не обязателен и тут не нужен. Знак При этом в argc будет число, указывающее на количество переданных параметров+1 (т.к. всегда есть хотя один параметр -- само имя программы). В argv будет массив строк, содержащий эти параметры. |
| Автор: jorkug 4.6.2005, 03:33 | ||
| Знак _chdrive меняет лишь свою текущую рабочую директорию
|
| Автор: Знак 4.6.2005, 08:47 | ||||
Нет не только он и диск менял тоже, а вот после компиляции только А и В переходил... Непонятно че делать |
| Автор: Знак 6.6.2005, 17:35 |
| За всей кривостью С++ просьба киндануть ссылку на работающий код по смене Дерева и диска.. |
| Автор: ManiaK 7.6.2005, 11:17 | ||||
Си++ - самый "логичный" для машин язык после асма и Си. Все его уродства - это уродства машин в первую очередь. Скорее всего раньше у тебя запускалась прога не твоя, а та, что в винде изначально заложена. В Win, насколько понимаю, можно сделать нечто вроде:
Думаю и в DOS есть что-то вроде этого, только времени искать нет |
| Автор: Crait 8.6.2005, 02:43 |
| setdisk() |
| Автор: Знак 8.6.2005, 19:04 |
| Все понимаю только для убедительности КОД кинуть надо А про кривость языка и так понятно я под ДОСОМ кодировал... Во как И там же кампилил описалова мало примерчик киньте..... Вроде все просто!?? Я ведь и свой код положил и не жилил проверьте ошибки чтоли!! |
| Автор: Crait 8.6.2005, 20:36 | ||
| Это типа я код зажиливаю ? Ну ладна, держи, от сердца отрываю :
Это из help'а, называецца setdisk example. |
| Автор: Знак 10.6.2005, 14:48 | ||
| поправьте пргу как правильно передать переменную из командной строки?
|
| Автор: oper54 10.6.2005, 15:10 | ||
Переход по драйверам
|
| Автор: Crait 11.6.2005, 14:12 |
| setdisk(tolower(*(argv[1]))- 'a'); |
| Автор: Знак 11.6.2005, 14:18 | ||
Вот переделал! Используйте и благодарите за всё "ЗНАКА". ТОлько для ввода надо использовать цифры а не буквы. |
| Автор: vadims 11.6.2005, 15:54 |
| Понять не могу почему эта ветка такой непечатной длины. Я уж не знаю, благодарить за решение проблемы 'З...' или разработчика среды. Если просто почитать Help, там четко написано, что drive имеет типом int - даже по элементарной C'шной логике:'a' - 0, 'b' - 1, 'c' - 2, 'd' ... Хотя в моей 'жалкой среде' там и об этом конкретно написано. |
| Автор: Знак 14.6.2005, 10:52 |
| Какой проблемы? С+++ не разрабатывал.. Я только Скрипт для народа публиканул. |
| Автор: AISIN 24.6.2005, 11:41 |
| пО моему с помощью этих функций можно выполнить любую дос команду! system, _wsystem,_execl,_execv,_execlpe. |