| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > GetVolumeNameForVolumeMountPoint трабл |
| Автор: necroo 21.5.2012, 16:34 | ||
народ , в мсдн есть код для монтирования дисков .. но в проге под винапи чёт не робит
в мсдн пишут , что бфлаг если успех >0 , но у меня выводит значение 0 .. и что не перепробывал не помогает .. помогите плз zsd=C:/ перешла из комбо бокса в котором szd=C:/./ - тоесть корневой каталог |
| Автор: feodorv 21.5.2012, 16:41 | ||||
Тут как-то не то со строкой. Строка должна заканчиваться символом '\0':
Добавлено через 4 минуты и 43 секунды Жуть Добавлено через 5 минут и 31 секунду Кроме того:
Добавлено через 8 минут и 33 секунды Ну и это не правильно (уж извините))). См. SetVolumeMountPoint доку |
| Автор: necroo 21.5.2012, 17:16 | ||
| ща я гляну .. этот код я прост переделывал .. замест Е:/ была переменная Buf которой присваивается значение куда монтировать .. ща поправлю.. Добавлено через 3 минуты и 51 секунду fedorv тип так ?
|
| Автор: necroo 21.5.2012, 18:25 |
| тоесть над bFlag = SetVolumeMountPoint(LPCSTR(<что монтировать?>),<куда монтировать?>,BUFSIZE); |
| Автор: feodorv 21.5.2012, 18:55 | ||||
Ну да, только BUFSIZE - третий лишний))) И у Вас теряется значение bFlag, полученное от GetVolumeNameForVolumeMountPoint:
|
| Автор: necroo 21.5.2012, 18:58 | ||
Неа .. пишет что неуспешно .. вот(
нулевое значение получает бфлаг .. он вообще как смотрит если оба аргумента истина то 1 возвращает ? |
| Автор: feodorv 21.5.2012, 19:09 | ||
Ага))) Итого: |
| Автор: necroo 21.5.2012, 19:17 | ||||||
нет .. идёт из комбо бокса , там диск "что монтировать" задаётся ... а монтируется в директорию F:\ допустим ... прост раньше с этим дел не имел...
эт та же самая беда) Добавлено через 2 минуты и 42 секунды вот смотрите комбо бокс
и потом уже идёт монтирование ... ну а каталог можно задать |
| Автор: feodorv 21.5.2012, 19:36 | ||||
Ой, мне кажется, нужно сначала с монтированием разобраться, а уже потом с комбобоксом))) Если создать пустую директорию c:\1\, то в неё можно замонтировать c:\
В чисто в драйвы монтировать не доводилось Добавлено через 2 минуты и 28 секунд Впрочем:
|
| Автор: necroo 21.5.2012, 19:50 |
| чёт странно ... очень даже ... в каком VS компилили? |
| Автор: feodorv 21.5.2012, 19:55 | ||
Что именно? Эээ, в 6-ом. Другого под рукой нет))) Makefile:
|
| Автор: necroo 21.5.2012, 20:04 | ||||
прост пытаюсь у себя скомпилить в 5-м ..
выдавал ошибку в what
а так не возвращает значение .. feodorv, у вас имеется ICQ ? |
| Автор: feodorv 21.5.2012, 20:22 | ||
Да у Вас юникодный проект!!! (У меня - простой, неюникодный). Надо это учесть: TCHAR (вместо char) и всё такое Добавлено через 12 минут и 56 секунд
|
| Автор: necroo 21.5.2012, 20:37 | ||
всёравно ругается [code=cpp]
пишет параметр задан неверно error code 87 .. у вас всё работает нормально? |
| Автор: feodorv 21.5.2012, 20:37 |
Нэту Добавлено через 3 минуты и 3 секунды Как это? Куда указатели делись? Давайте этого не делать, а то Вы не видите существа проблемы Где __TEXT(...)??? |
| Автор: necroo 21.5.2012, 20:47 |
| просто значение у bFlag=-858993460 а с этим наверн непорядок |
| Автор: feodorv 21.5.2012, 20:50 |
Смотря, как выводите... Там я драйв d: подсунул, у Вас такой есть? У Вас все драйвы в NTFS отформатированы? Добавлено @ 20:51 Да, правда у меня win XP. |
| Автор: necroo 21.5.2012, 20:53 |
| у меня win7 ... системные диски C: D: в нтфс а сьёмный в фат32 |
| Автор: feodorv 21.5.2012, 21:01 |
Супер. А Вы директорию c:\1\ или d:\1\ создали (руками)? |
| Автор: necroo 21.5.2012, 21:02 | ||||
| нет) сейчас попробую теперь ошибка
жесть) Добавлено через 2 минуты и 7 секунд попробую ща с д диском сделать .. т.к. доступ только для администратора ...
|
| Автор: feodorv 21.5.2012, 21:06 |
В общем, да. И я под администратором всё делал... |
| Автор: necroo 21.5.2012, 21:10 |
| теперь дело за малым) работает ... сейчас буду запихивать в свою программу) |
| Автор: feodorv 21.5.2012, 21:39 |
Мои поздравления! Не забывайте про юникод |
| Автор: necroo 21.5.2012, 22:07 |
| спасибо) но на этом думаю помощь не ограничивается |
| Автор: necroo 21.5.2012, 22:27 |
| feodorv, а как переделать C:// в C:\\ блин .... |
| Автор: feodorv 22.5.2012, 09:30 | ||
В смысле:
??? |
| Автор: necroo 22.5.2012, 17:57 | ||
| фууууууххх !!!! спс за помощь запилил в прогу работает) дело теперь за малым) вощем мне бы переменной "to" задать значение сменное какоенить ... тоесть там комбобокс или тип того .. но и создать директорию )
работает ае) |
| Автор: feodorv 22.5.2012, 18:26 | ||
Странно. Юникод кое-где проигнорирован:
szd и what тоже должны быть типа TCHAR. Или Вы отказались от юникода? Добавлено через 2 минуты и 16 секунд А если директория уже существует, то нужно проверить, что она пуста. Иначе монтирование не состоится... |
| Автор: necroo 22.5.2012, 23:01 |
| директорию через CreateDirectory ? |
| Автор: feodorv 22.5.2012, 23:56 | ||
Создать, да, но только если директория уровнем повыше существует. А если нет - то и её тоже:
Добавлено через 1 минуту и 3 секунды Приведён код без учёта юникода. |