Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.65
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
#1

тип переменной WIN32_FIND_DATA - C++

19.11.2011, 19:02. Просмотров 2505. Ответов 6
Метки нет (Все метки)

вот пишу матрицу доступов. пытаюсь считать из папки количество файлов, хранящейся в ней, но когда начинаю массиву типа string присваивать значение FindFileData.cFileName типа WIN32_FIND_DATA, он ругается:
error C2679: бинарный "=": не найден оператор, принимающий правый операнд типа "WCHAR [260]" (или приемлемое преобразование отсутствует)

код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void getFilesList (const char *root, string **&accessMas) {
    string temp;
    WIN32_FIND_DATA FindFileData;
    int j = 1;
    int count = 2;
    TCHAR cDirectoryName [] = TEXT("C:\\Matrix\\*.*");
    HANDLE hFind = FindFirstFile(cDirectoryName, &FindFileData);
    if(hFind != INVALID_HANDLE_VALUE)
    {
        do{ 
            count--;
            if (count >= 0) continue;
            //temp = new string(fd.cFileName);
            accessMas[j][0] = FindFileData.cFileName;
            j++;
        }while(FindNextFile(hFind, &FindFileData));
 
        FindClose(hFind);
    }
}
как можно избежать этой ошибки? побывал другие варианты, не помогло(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
19.11.2011, 19:06     тип переменной WIN32_FIND_DATA #2
попробуй вместо string wstring
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
19.11.2011, 19:11  [ТС]     тип переменной WIN32_FIND_DATA #3
Цитата Сообщение от aram_gyumri Посмотреть сообщение
попробуй вместо string wstring
Да, действительно помогло. Вот только проблема в том, что мне нужно, что это значение сохранялось в стринговскую переменную. Иначе в этот массив я не смогу внести простые слова, а это обязательно придется делать((((

Добавлено через 42 секунды
а если переделывать мой массив в wstring то не получится((
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
19.11.2011, 19:14     тип переменной WIN32_FIND_DATA #4
а почему не можешь?
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
19.11.2011, 19:18  [ТС]     тип переменной WIN32_FIND_DATA #5
ну выдает ту же ошибку. в wstring нельзя положить string. Ошибка:
отсутствует оператор "=", соответствующий этим операндам.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
19.11.2011, 19:26     тип переменной WIN32_FIND_DATA #6
wstring to string
C++
1
2
3
wstring ws = L"Hello";
string s(ws.begin(), ws.end());
s.assign(ws.begin(), ws.end());
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 20:05     тип переменной WIN32_FIND_DATA
Еще ссылки по теме:

Любой тип переменной C++
WIN32_FIND_DATA C++
Тип переменной C++
Проверка переменной на целый тип C++
C++ Тип переменной WIN32_FIND_DATA

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

Или воспользуйтесь поиском по форуму:
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
19.11.2011, 20:05  [ТС]     тип переменной WIN32_FIND_DATA #7
спасибо, попробую)
Yandex
Объявления
19.11.2011, 20:05     тип переменной WIN32_FIND_DATA
Ответ Создать тему
Опции темы

Текущее время: 02:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru