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

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

Войти
Регистрация
Восстановить пароль
 
x-954377
3 / 3 / 0
Регистрация: 20.06.2010
Сообщений: 42
#1

Unicode ОШИБКА - C++

03.07.2010, 10:53. Просмотров 446. Ответов 6
Метки нет (Все метки)

Всем привет у меня такая проблема с UNICODE вод код
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
#define UNICODE
#define _UNICODE
#include <Windows.h>
#pragma comment(linker,"/Entry:WinMain")
 
LPWSTR p(LPWSTR s)
{
    const int len = lstrlen(s);
    wchar_t *tmp = (wchar_t*)s;
    wchar_t *key = new wchar_t[len]; 
    wchar_t *b   = new wchar_t[len];
 
    for(int i=0; i<len; i++)key[i]= key[i]+(wchar_t)77;
    for(int i=0; i<len; i++)b[i]= tmp[i]^key[i];
 
    return b;
}
 
int _stdcall WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
    wchar_t *e = p(L"Hello");
    wchar_t *d = p(e);
 
    MessageBoxW(0,e,L"",0);
    MessageBoxW(0,d,L"",0);
 
    return 0;
}
Всё работает, но только выводит как в сообщение какой-то мусор, в чём моя проблема.

За рание спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2010, 10:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Unicode ОШИБКА (C++):

Настройка unicode. Ошибка при выполнении программы - C++
Здравствуйте. Знаю, что есть tchar.h, но мне нужно настроить unicode самому. #ifdef UNICODE #define TCHAR wchar_t #define...

Unicode в c++ - C++
Нужно вывести в консоли символ: \ Просто так сделать это нельзя, решил использовать Unicode. Код символа в Unicode : \u005C Как...

C++ и Unicode - C++
Всем привет. Читая про кодовые точки в Java, мне стало интересно как с этим дела в C++. Т.е. для обычного ASCII мы используем char (1...

ANSI и UNICODE - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main(){ TCHAR j; return 0;

Преобразование в Unicode - C++
Как преобразовать тип Buffer ,чтобы не было ошибки: error C2664: int CEdit::GetLine(int,LPTSTR,int) const: невозможно преобразовать...

ANSI to Unicode - C++
Всем доброго времени суток! Есть задачка преобразовать строку в cp1251 в строку в unicode и сохранить ее в файл в кодировке unicode...

6
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
03.07.2010, 18:39 #2
x-954377, это потому что функция p генерирует этот самый мусор) думаю, в 23 строке имелось в виду
C++
1
wchar_t * e = L"Hello";
0
x-954377
3 / 3 / 0
Регистрация: 20.06.2010
Сообщений: 42
03.07.2010, 18:55  [ТС] #3
Да она генерирует мусор вот и спросил как мне от это мусора избавится что не так в этой функции он должна сперва закодировать строку а потом раскодировать обратно. ну только там куча ненужного что при кодировки и что при раскодировки
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
03.07.2010, 18:56 #4
x-954377, С ключом,инициализированном мусором генерировать не-мусор не получится)
0
x-954377
3 / 3 / 0
Регистрация: 20.06.2010
Сообщений: 42
03.07.2010, 19:06  [ТС] #5
Так одратно он дол жен нормально а то мусор какой то лезит.
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
03.07.2010, 19:07 #6
Не должен. Он с другим мусорным ключом ...обратно) У тебя при каждом новом вызове ф-ии p память под ключ выделяется заново
0
x-954377
3 / 3 / 0
Регистрация: 20.06.2010
Сообщений: 42
03.07.2010, 19:25  [ТС] #7
Всё спсибо сам разобрался работает просто функцию нужно было до ума довести!!!! )))))
C++
1
2
3
4
5
6
7
8
9
10
11
12
LPWSTR WINAPI e_d_code(LPWSTR str)
{
    const int len =lstrlen(str);
    wchar_t *key= new wchar_t[len];
    wchar_t *buf= new wchar_t[len];
    
    lstrcpy(buf,str);
    for(int i=0; i<len; i++)key[i]=key[i]+(wchar_t)0x77;
    for(int i=0; i<len; i++)buf[i]=buf[i]^key[i];
 
    return buf;
}
З.Ы. Дума что тема закрыта
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2010, 19:25
Привет! Вот еще темы с ответами:

Unicode символы - C++
Здравствуйте.Каким образом можно вывести на экран символы unicode?

ANSI to Unicode - C++
Hi all. Вопрос к экспертам :) Хочу сохранить строку текста (кириллица) в текстовый файл. Строка в ANSI, а нужно сконвертировать в...

Unicode символы - C++
Здравствуйте, подскажите, как перевести коды символов типа \u1040 в сами символы?

From UTF-8 to UNICODE - C++
здравствуйте!! у меня вот какой вопрос! Как сделать преобразование UTF-8 и Unicode? во общем моя программа считывает данные с базы( база...


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

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

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