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

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

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

wchar_t to LPCWSTR - C++

21.12.2013, 13:15. Просмотров 609. Ответов 6
Метки нет (Все метки)

Ругается, что text является неинициализированной локальной переменной

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include "string.h"
 
#define ELEMENT_SIZE (150*1024)
 
int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    WIN32_FIND_DATAW wfd;
 
    wchar_t *text;
 
    wcin>>text;
    wcout << text;
 
    HANDLE const hFind = FindFirstFileW(text, &wfd);
 
    int size = 0;
    int sizel = 0;
 
    do
    {
        cout << "Введите размер файла: ";
        cin >> sizel;
 
        if(sizel < 0)
        {
            cout << "\nОшибка! Введено отрицательное число!\nПовторите попытку!\n\n";
        }
    }while(sizel < 0);
    
    if (INVALID_HANDLE_VALUE != hFind)
    {
        do
        {
            size = (wfd.nFileSizeHigh * (1 + MAXDWORD)) + wfd.nFileSizeLow;
 
            if (size > sizel)
            {
                std::wcout <<"Имя файла: "<< &wfd.cFileName[0] << "\n" << "Размер: " << size << " байт\n\n";
            }
        }while (NULL != FindNextFileW(hFind, &wfd));
 
        getchar();
        getchar();
        FindClose(hFind);
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 13:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос wchar_t to LPCWSTR (C++):

Std::allocator<wchar_t>>' to 'LPCWSTR' - C++
собственно есть list&lt;wstring&gt; куда вставили много адресов типа L&quot;D:\\66\\99&quot;; Задача удалять папки по этому адресу (пока что папки пусты...

FindWindowW: конвертировать из const wchar_t* в LPCWSTR - C++
Здравствуйте! Нужно фокусировать окно по названию, которое в юникоде. Название передается через const wchar_t*. Не монимаю как...

Почему const wchar_t* воспринимается как wchar_t* ? - C++
Здравствуйте. Я написал вот так: const wchar_t* dir = directory.c_str(); StartModule(dir); и такая ошибка появляется : ...

Wchar_t и unsigned wchar_t в windows - C++
Печально, но факт: wchar_t - 2 байта, unsigned wchar_t - 4 байта Вопрос1: используется ли unsigned wchar_t для хранения...

Cannot convert from 'wchar_t' to 'const wchar_t *' - C++
такой код, порылся в инете не помогло. ломать голову надоело может кто подскажет, буду благодарен. wchar_t * english = L&quot;abvgdee...

Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *" - C++
Вот так работает: wchar_t buf; Edit_GetText(hE, buf, sizeof(buf)); if(buf) { wchar_t b; _itow_s(wcscspn(buf, &amp;buf), b, 10); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17618 / 5842 / 375
Регистрация: 30.03.2009
Сообщений: 16,117
Записей в блоге: 26
21.12.2013, 13:30 #2
Цитата Сообщение от SlimSky Посмотреть сообщение
Ругается, что text является неинициализированной локальной переменной
Подтверждаю, text является неинициализированной локальной переменной
SlimSky
0 / 0 / 0
Регистрация: 13.12.2013
Сообщений: 11
21.12.2013, 13:36  [ТС] #3
И как быть?)
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.12.2013, 13:37 #4
для того, чтобы текст больше не являлся неинициализированной локальной переменной, ее нужно инициализировать.
нужно динамически выделить массив,
или статический сделать: wchar_t text[512];
а еще лучше использовать std::wstring text;
SlimSky
0 / 0 / 0
Регистрация: 13.12.2013
Сообщений: 11
21.12.2013, 13:43  [ТС] #5
Решил проблему wchar_t text = new wchar_t;
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.12.2013, 13:46 #6
ога ога. решили проблему компиляции.
готовтесь к проблемам в рантайме.
еще раз напоминаю: вам нужно работать с массивом символов, а не с одним.
wchar_t* text = new wchar_t; - это динамическое выделение одного символа.
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
21.12.2013, 15:08 #7
Почему просто не использовать std::wstring?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 15:08
Привет! Вот еще темы с ответами:

CP886 в Multibyte (wchar_t) и BYTE в Multibyte (wchar_t) - C++
Помогите разобраться с кодировками. Получаю из базы данных значения и при выводи их в EditControl все отлично, но если выводить данные в...

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

String и LPCWSTR - C++
Здравствуйте, есть функция, показывающая дату создания файла и есть такая строчка: LPCWSTR fname1 = L&quot;test.txt&quot;; Дело в том, что в...

Побороть LPCWSTR - C++
Всем привет. Пишу программку на WinApi но столкнулся с простой проблемой. Мне нужно программно вставить текст в Edit. Код примерно такой: ...


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

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

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