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

Invalid pointer addition - C++

Восстановить пароль Регистрация
 
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
26.08.2013, 19:00     Invalid pointer addition #1
В чем ошибка ?
C++
1
    hf=FindFirstFileW(L""+Edit4->Text.c_str()+"\\*.*", &FindFileData);
Код ошибки:
Invalid pointer addition
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2013, 19:00     Invalid pointer addition
Посмотрите здесь:

C++ Pointer
C++ Vector ругается на использование классов E2397 и Invalid pointer operation
string, invalid null pointer C++
pointer - pointer C++
delete[] *pointer vs. delete pointer и утечка памяти C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:04     Invalid pointer addition #2
А как ты так const char * складываешь? Так в С++ нельзя.

Цитата Сообщение от 0x10 Посмотреть сообщение
Для конкатенации строк - std::stringstream. Либо использовать std::string.
Либо strcat() на худой конец.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
26.08.2013, 19:04     Invalid pointer addition #3
Ну кто ж так указатели лихо складывает... Для конкатенации строк - std::stringstream. Либо использовать std::string.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.08.2013, 19:06     Invalid pointer addition #4
Первым параметром путь или что?
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
26.08.2013, 19:23  [ТС]     Invalid pointer addition #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Первым параметром путь или что?
Да, путь.

Добавлено через 1 минуту
Просто мне в любом случае необходимо писать L перед всей этой лабудой. Не могу додуматься как это сделать.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
26.08.2013, 19:27     Invalid pointer addition #6
Bend3r, для wchar_t - std::wstringstream...
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
26.08.2013, 19:31  [ТС]     Invalid pointer addition #7
Проблема решена.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.08.2013, 19:34     Invalid pointer addition #8
Цитата Сообщение от Bend3r Посмотреть сообщение
Да, путь.
Если путь, то обратный слеш нужно двойным деать, а здесь сделан одинарный.
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
26.08.2013, 19:38  [ТС]     Invalid pointer addition #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Если путь, то обратный слеш нужно двойным деать, а здесь сделан одинарный.
Я это знаю, ты мне вот что помоги.
Вот у меня есть путь.
C++
1
 wchar_t const *path = L"banners\\*.*";
Мне необходимо вместо banners, чтобы там было значение Edit4->Text. Пытаюсь сделать так.
C++
1
2
3
 wchar_t const *path = L"";
strcat(path,Edit4->Text);
strcat(path,"\\*.*");
Выбивает ошибку мол char на char* и прочую ересть. Надоело уже...
Дать бы Страуструпу под дых...
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 981
Регистрация: 02.05.2013
Сообщений: 10,296
Завершенные тесты: 1
26.08.2013, 19:41     Invalid pointer addition #10
C++
1
2
3
4
std::wstring path;
 
path += Edit4->Text;
path += L"\\*.*";
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:41     Invalid pointer addition #11
C++
1
2
3
wchar_t path[256];
wcscpy( path, Edit4->Text );
wcscat( path, L"\\*.*" );
http://www.cplusplus.com/reference/cwchar/wcscat/
strcat не для UNICODE.
0x10
26.08.2013, 19:42
  #12

Не по теме:

Цитата Сообщение от Bend3r Посмотреть сообщение
Дать бы Страуструпу под дых...
При чем тут Страуструп, если не умеете пользоваться языком?

castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:44     Invalid pointer addition #13
Поправил 11-й пост
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
26.08.2013, 19:46  [ТС]     Invalid pointer addition #14
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
void __fastcall TForm2::Button1Click(TObject *Sender)
{
 
std::wstring path;
 
path = path + Edit4->Text;
path = path + L"\\*.*";
 
    WIN32_FIND_DATAW wfd;
    HANDLE const hFind = FindFirstFileW(path, &wfd);
 
    if (INVALID_HANDLE_VALUE != hFind)
    {
        do
        {
            if ( (0 == (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) &&
                 (0 == (wfd.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) )
            {
                Memo1->Lines->Add(&wfd.cFileName[0]);
            }
        } while (FALSE != FindNextFileW(hFind, &wfd));
 
        FindClose(hFind);
    }
 
 
}
Ошибки:
'operator+' not implemented in type 'wstring' for arguments of type 'UnicodeString'
Cannot convert 'wstring' to 'const wchar_t *'

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
C++
1
2
3
wchar_t path[256];
wcscpy( path, Edit4->Text );
wcscat( path, L"\\*.*" );
http://www.cplusplus.com/reference/cwchar/wcscat/
strcat не для UNICODE.
Cannot convert 'UnicodeString' to 'const wchar_t *'

Добавлено через 56 секунд
Цитата Сообщение от 0x10 Посмотреть сообщение
При чем тут Страуструп, если не умеете пользоваться языком?
Что-то умею, что-то не умею. Пол года учу. Все еще впереди.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:50     Invalid pointer addition #15
Цитата Сообщение от Bend3r Посмотреть сообщение
Cannot convert 'UnicodeString' to 'const wchar_t *'
Я не сильно разбираюсь в C++ Builder и в его приблудах, а точнее вообще не разбираюсь. Чем является Edit4->Text ?

Ты уверен что эта проблема с исправленным 11-м постом!?
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
26.08.2013, 19:52  [ТС]     Invalid pointer addition #16
Цитата Сообщение от castaway Посмотреть сообщение
Я не сильно разбираюсь в C++ Builder и в его приблудах, а точнее вообще не разбираюсь. Чем является Edit4->Text ?
Текст боксом. Проблема решена, все большое спасибо! Вот код
C++
1
2
3
wchar_t path[256];
wcscpy( path, Edit4->Text.c_str());
wcscat( path, L"\\*.*" );
Добавлено через 47 секунд
Цитата Сообщение от castaway Посмотреть сообщение
Ты уверен что эта проблема с исправленным 11-м постом!?
Edit4->Text.c_str(); И все отлично!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2013, 19:52     Invalid pointer addition
Еще ссылки по теме:

invalid pointer operation C++
C++ Из-за чего может возникать следующая ошибка: "Invalid null pointer"?
C++ Invalid pointer operation

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:52     Invalid pointer addition #17
Цитата Сообщение от Bend3r Посмотреть сообщение
Текст боксом.
Я имел в виду тип.
Yandex
Объявления
26.08.2013, 19:52     Invalid pointer addition
Ответ Создать тему
Опции темы

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