Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
#1

Приведение типов в GetFileList - C++

26.09.2013, 02:39. Просмотров 290. Ответов 2
Метки нет (Все метки)

Использую нижеприведенный код (немного переделанный под мои нужды), найденный на форуме для прохода по файловой системе. Но ругается студия на несоответствие типов. А именно:

argument of type "WCHAR *" is incompatible with parameter of type "const char *

argument of type "LPTSTR" is incompatible with parameter of type "const char *


Как было бы верно их здесь привести ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void GetFileList(LPTSTR sPath, Object* fsParser) {
 
    WIN32_FIND_DATA pFILEDATA;
 
    HANDLE hFile = FindFirstFile(strcat(sPath,"\\*.*"),&pFILEDATA);
 
    sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
 
    if (hFile!=INVALID_HANDLE_VALUE)    {
        char * chBuf;
        do {
            if (strlen(pFILEDATA.cFileName) == 1 &&  strchr(pFILEDATA.cFileName,'.') !=NULL)
                if (FindNextFile(hFile,&pFILEDATA) == 0)
                    break;
            if (strlen(pFILEDATA.cFileName) == 2 && strstr(pFILEDATA.cFileName,"..") !=NULL)
                if(FindNextFile(hFile,&pFILEDATA) == 0)
                    break;
            if(pFILEDATA.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
 
                char ch[260];
                Object* fundFolder = new Folder(ch);
                fsParser.add(fundFolder);
 
                GetFileList(strcat(sPath,pFILEDATA.cFileName), fundFolder);
                sPath[strlen(sPath) - strlen(pFILEDATA.cFileName)- 1] = '\0';
            }
            else {
                char ch[260];
                Object* fundFile = new Folder(ch);
                fsParser.add(fundFile);
            }
        }
        while (FindNextFile(hFile,&pFILEDATA));
    }
}

был бы еще благодарен, если бы растолковали, как в этой функции вытащить атрибуты файлов типа расширения, даты создания, размера и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 02:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Приведение типов в GetFileList (C++):

Приведение типов - C++
В чем различие привидения типа (type)expression, от type(expression)?

приведение типов - C++
Объясните, пожалуйста, почему возникает такая ошибка: error C2666: 'operator *' : 4 overloads have similar conversions ? Из-за того,...

Приведение типов - C++
Есть задача создать список с объектами у которых разные классы, но один базовый предок. Потом нужно перебрать список и если объект одного...

Приведение типов - C++
Есть ли какая-нибудь разница в следующих выражениях: float a = 123.4f и float a = (float)123.4

Приведение типов. - C++
Столкнулся с задачей считывания данных из символьного массива с дальнейшим отбором из всего этого чисел и перезаписи их в массив типа...

Приведение типов - C++
Необходимо привязать адрес массива double по указателю к адресу структуры. Массив сам создан в другом приложении. Если использовать...

2
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2013, 03:49 #2
Цитата Сообщение от oodessit Посмотреть сообщение
Как было бы верно их здесь привести ?
Отключить в свойствах проекта Юникод, или использовать функции для широких символов: wcslen, wcschr, wcsstr, wcscat.
1
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
26.09.2013, 03:53  [ТС] #3
да, верно, спасибо. Минуту назад сам догнал. Юникод отключить не выйдет, т.к. задача его требует, а wcs устраивает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 03:53
Привет! Вот еще темы с ответами:

Приведение типов - C++
Уважаемые программеры, ПОМОГИТЕ!!! Нужно (мне) реализовать шаблонную функцию для приведения типов. Пример: newType_cast<T>(“123”); ...

Приведение типов? - C++
Подскажите, пожалуйста что происходит. Не понимаю почему такой код работает. .h class Km { private: static const...

Приведение типов - C++
Делаю программу, которая кроме всего прочего должна отсортировать массив. Использую для этого qsort. Вот что получилось: ...

Приведение типов - C++
При вводе с клавиатуры s = 11 и a = 1.1, получаем 9. Результат переменной d = 10, это правильно. В чём подвох? int main() { ...


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

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

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