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

Инициализация std::vector<wchar_t>

20.03.2016, 15:54. Просмотров 374. Ответов 0
Метки нет (Все метки)

Объявлена структура. В конструкторе нужно проинициализировать переменную вектор m_path. Делаю так:
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
36
37
38
struct dm_handle
{
public:
    dm_handle(char const * path, dm_event_callback_t ev, void * udata)
        : m_path(*from_utf8(path))
        , m_event(ev)
        , m_udata(udata)
        , m_dir(CreateFileW(
                    &m_path[0],                         // pointer to the file name
                FILE_LIST_DIRECTORY,                // access (read/write) mode
                // Share mode MUST be the following to avoid problems with renames via Explorer!
                FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, // share mode
                NULL,                               // security descriptor
                OPEN_EXISTING,                      // how to create
                FILE_FLAG_BACKUP_SEMANTICS,         // file attributes
                NULL                                // file with attributes to copy
                ))
        , m_stop(CreateEvent(NULL, FALSE, FALSE, NULL))
        , m_thr(NULL)
    { }
 
//преобразовываем путь для винды в wchar_t
const wchar_t *from_utf8(char const *pt)
    {
        const size_t cSize = strlen(pt)+1;
        wchar_t* wc = new wchar_t[cSize];
        mbstowcs (wc, pt, cSize);
        return wc;
    }
 
dm_handle * dm_create_monitor(char const * path, dm_event_callback_t ev, void *ud)
{
    // проверяем корректность данных
}
 
 
std::vector<wchar_t> m_path; // сюда помещаем путь, который передали в параметре
}
В новом классе создаю структуру и передаю ей строку в char const* для преобразования ее в wchar_t :
C++
1
2
3
4
5
6
7
8
class MyClass
{
 
public:
    MyClass():m_pdm(dm_create_monitor("C:/test", MyClass::handler, this))
    {
    }
}
В итоге в векторе m_path имеются одни нули. Что я делаю не так?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2016, 15:54
Ответы с готовыми решениями:

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же...

Инициализация статического члена std::vector в шаблонном классе
есть класс myclass , владеющий классом struct template&lt;class T&gt; class myclass { struct...

Как передать целочисленную матрицу типа std::vector<std::vector<int> > в функцию?
Здравствуйте. Почитал на форуме, но так и не понял что я делаю не так. Имеется двумерный вектор....

Как изменять размер std::vector<std::vector>?
Здравствуйте, как нужно изменять размер std::vector&lt;std::vector&gt; например: ...

Вывести значения std::vector<std::vector<int*> >
Подскажите, как вывести значения? const size_t row = 3; const size_t col = 3;...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2016, 15:54

Error: cannot bind 'std::basic_ostream<wchar_t>' lvalue to 'std::basic_ostream<wchar_t>&&'|
Ругается на строку Log&lt;&lt;StripXML(__PRETTY_FUNCTION__)&lt;&lt;std::endl;. Функция такая: ...

Записать vector<vector<wchar_t>> в текстовый файл
Подскажите пожалуйста, как записать vector&lt;vector&lt;wchar_t&gt;&gt; в файл. Файл необходимо открывать через...

Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator>
Вопрос по вектору. Допустим есть вектор, std::vector&lt;int&gt; vec; на каком - то этапе заполнения я...


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

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

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