Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> с ansi в unicode 
:(
    Опции темы
pycha
Дата 7.8.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



драсте. Мне надо сделать функцию которая принимает строку char , a возвращает LPCWSTR (Всмысле юникоде строку). эту функцию кинул в заголовочный файл. 

Вот что я набросал


Код


#ifndef _KUNIK_H_
#define _KUNIK_H_
#include "stdafx.h"
#include <windows.h>
#include <cstring>

LPCWSTR kUnik (char *);

LPCWSTR kUnik (char * astring)
{
    wchar_t tempw= 'a';
    char tempa ='a';
    wchar_t * wstring;
    int raznica; 
    raznica = (int) tempw - (int ) tempa;
    int len = strlen(astring);
    char * mas = new char[len];
    mas = astring;

    for(int i=0; i <len; i++)
    {
        tempw = (int) mas[i] + raznica;
        _tcscat (wstring, tempw);
    }
    return wstring;
}

#endif


не знаю иль работает правильно но задум вродебы красивый. Проблема вот какая : _tcscat не хочет склеивать - говорит что второй параметр должен быть типа const wchar_t * . Что не думал никак не получается выйти из этой ситуации.
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
mrbrooks
Дата 7.8.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Чем тебя родная не устраивает
Код

int MultiBytoToWideChar(
UINT uCodePage,
DWORD dwFlags,
PCSTR pMultiByteStr,
int cchMultiByte,
PWSTR pWideCharStr,
int cchWideChar);


Добавлено @ 15:21
или так
Код

WCHAR szW[100]; // строковый буфер в Unicode
swprintf(szW, L"%S", "ANSI Str");


Это сообщение отредактировал(а) mrbrooks - 7.8.2008, 15:22
PM MAIL   Вверх
mes
Дата 7.8.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(pycha @  7.8.2008,  15:14 Найти цитируемый пост)
_tcscat не хочет склеивать - говорит что второй параметр должен быть типа const wchar_t * .

весь код не смотрел, но вот что бросилось в глаза 
Цитата(pycha @  7.8.2008,  15:14 Найти цитируемый пост)
  wchar_t tempw= 'a';

тебе нужна строка , а определен символ  ..  
можно определить его как массив из двух символов, где второй будет 0 , а с первым работать как нужно
или написать свою  _tcscat   smile 

Это сообщение отредактировал(а) mes - 7.8.2008, 15:24


--------------------
PM MAIL WWW   Вверх
pycha
Дата 7.8.2008, 16:21 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Цитата(mrbrooks @  7.8.2008,  15:20 Найти цитируемый пост)
Чем тебя родная не устраивает

- Я про нее узнал только што от тебя.

Немного подумав сотворил вотэто


 
Код


#ifndef _KUNIK_H_
#define _KUNIK_H_
#include "stdafx.h"
#include <windows.h>
#include <cstring>

LPCWSTR kUnik (char *);

LPCWSTR kUnik (char * astring)
{
    wchar_t tempw[2]= L"a";
    char tempa ='a';
    wchar_t mastemp[500] = L" ";
    wchar_t * wstring = mastemp;
    int raznica; 
    raznica = (int) tempw[0] - (int ) tempa;
    int len = strlen(astring);
    char * mas = new char[len];
    mas = astring;

    for(int i=0; i <len; i++)
    {
        tempw[0] = (int) mas[i] + raznica;
        _tcscat (wstring, tempw);
    }
    return wstring;
}

#endif


Работает smile 

а нужно оно мне для  этого
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
pycha
Дата 7.8.2008, 16:42 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Блин как ни одно то другое. Работает на одной проге , где передаётся char. На той что по ссылке мне  нужно чтобы функция принимала  аргумент const char *
Я функцию переписал вот так:


Код


#ifndef _KUNIK_H_
#define _KUNIK_H_
#include "stdafx.h"
#include <windows.h>
#include <cstring>

LPCWSTR kUnik (const char *);

LPCWSTR kUnik (const char * astring)
{
    wchar_t tempw[2]= L"a";
    char tempa ='a';
    wchar_t mastemp[500] = L" ";
    wchar_t * wstring = mastemp;
    int raznica; 
    raznica = (int) tempw[0] - (int ) tempa;
    int len = strlen(astring);
    const char * mas = new  char[len];
    mas = astring;

    for(int i=0; i <len; i++)
    {
        tempw[0] = (int) mas[i] + raznica;
        _tcscat (wstring, tempw);
    }
    return wstring;
}

#endif


но появилать ошибка на процесе линковки.
Цитата


Linking...
textviver.obj : error LNK2019: unresolved external symbol "public: __thiscall KWnd::KWnd(wchar_t const *,struct HINSTANCE__ *,int,long (__stdcall*)(struct HWND__ *,unsigned int,unsigned int,long),wchar_t const *,int,int,int,int,unsigned int,unsigned long,struct HWND__ *)" (??0KWnd@@QAE@PB_WPAUHINSTANCE__@@HP6GJPAUHWND__@@IIJ@Z0HHHHIK2@Z) referenced in function _WinMain@16
G:\Documents and Settings\pycha.PYCHA-1366613\Мои документы\Visual Studio 2008\Projects\Project2\textviver\Debug\textviver.exe : fatal error LNK1120: 1 unresolved externals


что с этим делать? Я в этой ошибке чтото вообще ничего не пойму.




------ забыл добавить файл в проект. Удалите ктото это сообщение


Это сообщение отредактировал(а) pycha - 7.8.2008, 17:59
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
xvr
Дата 8.8.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(pycha @ 7.8.2008,  16:42)
Блин как ни одно то другое. Работает на одной проге , где передаётся char. На той что по ссылке мне  нужно чтобы функция принимала  аргумент const char *
Я функцию переписал вот так:

Да уж функция у тебя что надо  smile 
Код


#ifndef _KUNIK_H_
#define _KUNIK_H_
#include "stdafx.h"
#include <windows.h>
#include <cstring>

LPCWSTR kUnik (const char *);

LPCWSTR kUnik (const char * astring)
{
    wchar_t tempw[2]= L"a";
    char tempa ='a';
    wchar_t mastemp[500] = L" ";
// Прибавлять будем к пробелу?
    wchar_t * wstring = mastemp;
// А это зачем? Чем исходный mastemp не понравился?
    int raznica; 
    raznica = (int) tempw[0] - (int ) tempa;
// Твоя raznica равна 0
    int len = strlen(astring);
    const char * mas = new  char[len];
// Выделили массив (зачем)???
    mas = astring;
// И тут же про него забыли!!! Чистая потерянная память

    for(int i=0; i <len; i++)
    {
        tempw[0] = (int) mas[i] + raznica;
// Это будет работать ТОЛЬКО для английских букв, цифр и знаков из нижней половины таблицы символов ASCII (для русских букв работать не будет)
        _tcscat (wstring, tempw);
    }
    return wstring;
// Вернули указатель на локальный буфер, что из него прочтет тот, кто вызывал это творение - одному богу известно
}

#endif
Вывод - распечатать, повесить на стенку под надписью 'ТАК ПИСАТЬ НЕЛЬЗЯ!'


PM MAIL   Вверх
pycha
Дата 8.8.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


главный анастазиолог
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 20.6.2008
Где: Украина

Репутация: 1
Всего: 13



Я работал с англ. символами и поэтому разницы не заметил . Сейчас перепишу. Мою логику обьяснять не буду ибо как я понял смеха тут будет много

Добавлено @ 15:41
Я пока только развиваюсь. Таких граблей будет еще много

Это сообщение отредактировал(а) pycha - 8.8.2008, 15:44
--------------------
ищу хакера со знанием компьютера длятехкт
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.