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

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

Войти
Регистрация
Восстановить пароль
 
 
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
#1

Invalid pointer addition - C++

26.08.2013, 19:00. Просмотров 832. Ответов 16
Метки нет (Все метки)

В чем ошибка ?
C++
1
    hf=FindFirstFileW(L""+Edit4->Text.c_str()+"\\*.*", &FindFileData);
Код ошибки:
Invalid pointer addition
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2013, 19:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Invalid pointer addition (C++):

invalid pointer operation - C++
for (global_index1 = 0; global_index1 < t->dir_list->Count; global_index1++) { for (int j = 0; j <...

Invalid null pointer - C++
Так она работает: #include <iostream> #include <conio.h> #include <list> #include <string> using namespace std; void...

Invalid pointer operation - C++
Добрый вечер. Возникает такая ошибка при выключении программы: invalid pointer operation. Используется DLL. extern "C"...

string, invalid null pointer - C++
#include <stdio.h> #include <iostream> #include <string> using namespace std; #define SIZE 450 ...

Ошибка munmap_chunk(): invalid pointer: 0x0000000000401284 - C++
#include <iostream> #include <cstdlib> using namespace std; class Array{ int n; int *p; static int count; public: void...

Vector ругается на использование классов E2397 и Invalid pointer operation - C++
Не получается использовать vector с собственными классами выдает либо Unit1.cpp(62): E2397 Template argument cannot have static or local...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:04 #2
А как ты так const char * складываешь? Так в С++ нельзя.

Цитата Сообщение от 0x10 Посмотреть сообщение
Для конкатенации строк - std::stringstream. Либо использовать std::string.
Либо strcat() на худой конец.
1
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
26.08.2013, 19:04 #3
Ну кто ж так указатели лихо складывает... Для конкатенации строк - std::stringstream. Либо использовать std::string.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.08.2013, 19:06 #4
Первым параметром путь или что?
1
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:23  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Первым параметром путь или что?
Да, путь.

Добавлено через 1 минуту
Просто мне в любом случае необходимо писать L перед всей этой лабудой. Не могу додуматься как это сделать.
0
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
26.08.2013, 19:27 #6
Bend3r, для wchar_t - std::wstringstream...
1
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:31  [ТС] #7
Проблема решена.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.08.2013, 19:34 #8
Цитата Сообщение от Bend3r Посмотреть сообщение
Да, путь.
Если путь, то обратный слеш нужно двойным деать, а здесь сделан одинарный.
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:38  [ТС] #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* и прочую ересть. Надоело уже...
Дать бы Страуструпу под дых...
0
Убежденный
Системный программист
Эксперт С++
15553 / 7061 / 1114
Регистрация: 02.05.2013
Сообщений: 11,469
Завершенные тесты: 1
26.08.2013, 19:41 #10
C++
1
2
3
4
std::wstring path;
 
path += Edit4->Text;
path += L"\\*.*";
1
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:41 #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.
1
0x10
26.08.2013, 19:42
  #12

Не по теме:

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

1
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:44 #13
Поправил 11-й пост
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:46  [ТС] #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 Посмотреть сообщение
При чем тут Страуструп, если не умеете пользоваться языком?
Что-то умею, что-то не умею. Пол года учу. Все еще впереди.
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:50 #15
Цитата Сообщение от Bend3r Посмотреть сообщение
Cannot convert 'UnicodeString' to 'const wchar_t *'
Я не сильно разбираюсь в C++ Builder и в его приблудах, а точнее вообще не разбираюсь. Чем является Edit4->Text ?

Ты уверен что эта проблема с исправленным 11-м постом!?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2013, 19:50
Привет! Вот еще темы с ответами:

Из-за чего может возникать следующая ошибка: "Invalid null pointer"? - C++
NEBTELA* fggff; //указатель на объект базового класса fggff = new Zvezda; //переопределение в объект производного класса в...

Shared_ptr - stored pointer, owned pointer - C++
Зачем в shared_ptr нужен хранимый указатель, отличный от владеемого? И так в этом средстве, вроде как предназначенном для уменьшения...

delete[] *pointer vs. delete pointer и утечка памяти - C++
Здравствуйте! Есть класс "умного" указателя counted_ptr, который удаляет хранящийся в нём T* owned; только если кол-во владельцев...

pointer - pointer - C++
#include<iostream> #include<algorithm> using namespace std; int main() { int arr = {8,4,6,15,36,78,9,10}; int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.08.2013, 19:50
Ответ Создать тему
Опции темы

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