Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > SetCurrentDirectory |
Автор: asdfcdfdc 2.6.2011, 00:18 |
Привет всем! помогите решить проблему с SetCurrentDirectory если я хочу установить SetCurrentDirectory("C:\Новая папка"); так-же есть SetCurrentDirectoryW - пробывал с ней тоже самое не могу не как установить...в чем может быть трабла протестите плиз у себя как у вас устанавливаеся если есть папка на русском?...заранее спасибо |
Автор: borisbn 2.6.2011, 05:52 |
Не SetCurrentDirectory("C:\ Новая папка"); а SetCurrentDirectory("C:\\Новая папка"); |
Автор: asdfcdfdc 2.6.2011, 08:11 | ||||
a S
угу сорри опечатался...но даже если так всеравно не устанавливается... |
Автор: borisbn 2.6.2011, 09:30 | ||
1. Попробуй так
2. А как ты узнаёшь, что ? |
Автор: asdfcdfdc 2.6.2011, 10:06 | ||||
сек ну вот допустим подправил как ты хотел, не устанвливается..
|
Автор: Alca 2.6.2011, 10:11 | ||||
да, да, проясни Добавлено через 1 минуту и 10 секунд Покажи вывод программы Добавлено через 2 минуты и 47 секунд И где проверка результатов апишных функций? Добавлено через 3 минуты и 45 секунд
Добавлено через 4 минуты и 7 секунд http://msdn.microsoft.com/en-us/library/aa363806(v=vs.85).aspx |
Автор: GremlinProg 2.6.2011, 10:15 | ||
SetCurrentDirectory возвращает результат, который неплохо бы поизучать:
Добавлено через 1 минуту и 7 секунд угу ![]() |
Автор: asdfcdfdc 2.6.2011, 10:37 | ||
ну вот смотрите...
cin.getline(buffer,sizeof(buffer)); - когда использую это пример так C:\\Новая папка или так C:\Новая папка GetLastError() выдает код ошибки 2 |
Автор: asdfcdfdc 2.6.2011, 10:47 | ||
мне нужно программно устанавливать директорию
не программно работает strcpy(buffer,"C:\\Новая папка"); не работает SetCurrentDirectory("\"C:\\Новая папка\""); или SetCurrentDirectory("C:\\Новая папка"); или SetCurrentDirectory("C:\Новая папка\"); или SetCurrentDirectory("C:\\Новая папка\"); программно не работает использование cin.getline(buf); cin>>buf; нужно с консоли программно установить директорию с рус.название |
Автор: RastaDja 2.6.2011, 11:28 | ||
ОМГ ![]() |
Автор: GremlinProg 2.6.2011, 11:34 | ||
вот оно что ![]() программно, т.е. из консоли значит проблема не с SetCurrentDirectory, а с кодировкой
одно из двух должно помочь, если вызвать перед любым чтением из консоли |
Автор: afiskon 2.6.2011, 14:10 | ||
Ну вы, ребят, извращенцы ![]()
Если в настройках проекта указано, что он в юникоде, можно просто SetCurrentDirectory, но строка обязательно должна быть в юникоде L"...." |
Автор: GremlinProg 2.6.2011, 14:16 |
вообще-то настройки проекта на этот вызов ни как не влияют ![]() |
Автор: afiskon 2.6.2011, 15:10 |
Хм... мне казалось, что в 10-й студии влияет. Ну да ладно... |
Автор: asdfcdfdc 5.6.2011, 17:57 | ||
не могу программно перейти в C:\Новая папка она естесвенно существует и в любую другую папку имеющую русские имена в чем проблема кто подскажет? C:\newdir -нормально отрабатывает C:\Новая папка не работает готов заплатить 50руб. спецу кто решит данный вопрос, я уже сомневаюсь что можно что-то сделать ибо баг винды |
Автор: GremlinProg 6.6.2011, 06:02 | ||
за бесплатно могу еще раз повторить: проблема в кодировке! Добавлено через 5 минут и 9 секунд 1. выводи буфер, в который считывается getline в консоль 2. используй OemToChar, если не получается с setlocale Добавлено через 7 минут и 4 секунды + у консоли есть возможность поставить шрифт, Lucida Console понимант русские кодировки |