Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
AlexLan73
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 155
#1

Функция GetCurrentDirectory меняет тип переменной

07.05.2015, 22:44. Просмотров 915. Ответов 7
Метки нет (Все метки)

Подскажите пожалуйста.
Определяю от куда была запущена программа. В режиме Debug все работает.
Когда компилируемую в режиме Release не работает. Функция GetCurrentDirectory выдает значение buffer в другом типе,
который не преобразуется в переменную типа string.
C++
1
2
3
4
5
6
7
    TCHAR buffer[MAX_PATH];
    GetCurrentDirectory(MAX_PATH, buffer);
    string str;
    ostringstream ostr;
 
    ostr << buffer;
    string path = ostr.str();
Подскажите пожалуйста как решить данную проблему.
С уважением, Александр
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2015, 22:44
Ответы с готовыми решениями:

Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR?
Вроде давно занимаюсь программированием на С++, но встала проблема... Есть...

Функция не меняет значения
Помогите, пожалуйста, не могу заставить функцию изменить значение переменных....

Функция не меняет значение аргументов (за ее пределами)
Код: //заголовочный #ifndef HTPOTC_H #define HTPOTC_H class Rational{...

Функция не меняет значения двумерного массива
Проблема в Функции BuildNewMap, мне нужно, чтобы значения элемента в массиве...

Функция которая меняет переданные ей переменные?
Как ее сделать

7
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
07.05.2015, 22:57 #2
Ты A или W функию используешь? Укажи явно. Если W, то надо wstring. И достаточно просто
C++
1
path = buffer;
0
AlexLan73
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 155
07.05.2015, 23:03  [ТС] #3
Извини, я не понял.
В конечном варианте мне нужно получить переменную типа string.
Она дальше в программе используется
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
07.05.2015, 23:05 #4
Лучший ответ Сообщение было отмечено AlexLan73 как решение

Решение

TCHAR у тебя char или wchar_t?
Вот по-древнему:
C++
1
2
3
char buffer[MAX_PATH];
GetCurrentDirectoryA(MAX_PATH, buffer);
string path = buffer;
1
AlexLan73
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 155
07.05.2015, 23:08  [ТС] #5
Хороший вариант я с него и начал))
но он в режиме Release не работает
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
07.05.2015, 23:12 #6
Как не работает? Ошибку выдаёт или что? Букву A в конце функции не забыл?
Проверяй возврат GetCurrentDirectoryA(), должно быть больше нуля.
1
AlexLan73
2 / 2 / 3
Регистрация: 06.10.2013
Сообщений: 155
08.05.2015, 00:01  [ТС] #7
!!!!!!!!! Спасибо Работает !!!
(( продолжение головной боли тоже самое
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
LPCSTR ppp = f1.c_str(); <== это работает в режиме Debeg
Когда компилируемую в режиме Release требует тип==> LPCWSTR
hFind = FindFirstFile(ppp, &FindFileData);

Подскажите как эту решить проблему?
За первую еще раз спасибо)))

Добавлено через 42 минуты
Может подскажите как преобразовать string в LPCWSTR для FindFirstFile(..
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
08.05.2015, 09:56 #8
По-правильному нужно выкинуть эту древность и использовать только Unicode-функции, которые с W, а также wchar_t вместо char и wstring вместо string.
В твоём случае по-видимому настройки проекта по использованию Unicode отличаются: для debug выбраны древние строки, а для release современные, там ищи.
1
08.05.2015, 09:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2015, 09:56

Функция,которая меняет расширение файла на новое
Здравствуйте,уважаемые форумчане,помогите мне пожалуйста,доделать задание(не...

Функция, что меняет первую букву слова на большую.
Здравствуйте! Помогите, пожалуйста, написать функцию на Си, которая меняет...

Функция катороя в массиве меняет единиц на нули и наоборот
Сложить функцию, которая меняет в одномерном массиве, заданного размера - из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru