Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Из std::string в String, преобразование std::string в String 
:(
    Опции темы
Zakhar_Shan
Дата 5.4.2009, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Введение(Можно пропустить):
Можете называть меня лузером, но эту тему в поиске так и не нашёл, по основному образованию я не программист, жизнь сделала меня математиком-нефтяником… но програмить люблю.
Введения часть 2 (Можно пропустить тоже):
В общем, задал я вопрос в теме: Как защитить программу с помощью ключа
Ответ нашёлся, но проблема в том, что ответ этот возвращает std::string.
Причём смотрю я через builder, лежат в этом std::string 16 символов (а мне столько и нужно), а как не переведу в String получается 6… и символы совершенно нецензурные. Всякие квадратики, собачки итп….

Внимание вопрос (читать всем):
 как из std::string сделать String (ну или AnsiString)???
 smile 


M
dumb
Давайте чутка снизим нагрузку на глаза форумчан, ок?


Это сообщение отредактировал(а) dumb - 8.4.2009, 04:27
PM MAIL   Вверх
Alca
Дата 5.4.2009, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 25
Всего: 50



Код

std::string sStr  = "StdString";
AnsiString asStr = "";
asStr = AnsiString(sStr.c_str());



Добавлено через 46 секунд
Код

std::string sStr  = "StdString";
AnsiString asStr(sStr.c_str());



--------------------
PM WWW ICQ Skype Jabber   Вверх
Zakhar_Shan
Дата 6.4.2009, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Alca @  5.4.2009,  23:51 Найти цитируемый пост)
:
    
std::string sStr  = "StdString";
AnsiString asStr(sStr.c_str());

неа вот код, может поможет:
Код

//---------------------------------------------------------------------------


#pragma hdrstop
#include <string>
#include <vcl.h>
#include <iterator>
#include <sstream>
const std::string cKey = "ver 2.0" ;
 std::string getProcId(){
 DWORD dwID1,dwID2;
    asm{
        pushad
        mov eax,3
        cpuid
        mov [dwID2],edx
        mov [dwID1],eax
        // mov [dwID2],ecx
        popad
    }
    return std::string(IntToHex(int(dwID1),8).c_str())+std::string(IntToHex(int(dwID2),8).c_str());
 }
 String getInputKey(){
    String res = String(getProcId().c_str());
    res.Insert("-",13);
    res.Insert("-",9);
    res.Insert("-",5);
    return res;
 }
//---------------------------------------------------------------------------
std::string xor_crypt (const std::string& src,
                                            const std::string& key){
    std::string result;
    result.reserve (src.length());
    for (std::string::const_iterator it = src.begin(); it!=src.end(); )
     for (std::string::const_iterator it1 = key.begin(); it!=src.end() && it1!=key.end(); ++it1, ++it)
     result.push_back (*it ^ *it1);
    return result;
}
    String generateLicKey(String inputKey){
        inputKey.Delete(15,1);
        inputKey.Delete(10,1);
        inputKey.Delete(5,1);
        std::string src =  inputKey.c_str();

        std::string sStr=xor_crypt (src,cKey);

        AnsiString asStr(sStr.c_str());
        return asStr;
    }

#pragma package(smart_init)


Обращение:
Код

String res = generateLicKey(getInputKey());

а res потом содержит: @SGb, хотя в sStr в _Buf лежит16 символов

PM MAIL   Вверх
mes
Дата 6.4.2009, 01:47 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Zakhar_Shan @  5.4.2009,  22:44 Найти цитируемый пост)
Причём смотрю я через builder, лежат в этом std::string 16 символов (а мне столько и нужно), а как не переведу в String получается 6… и символы совершенно нецензурные. 

Потому что результат операции xor_crypt нельзя расматривать как строку. Это просто массив символов и вам нужно написать свою операцию вывода. Для вывода на экран в частности там есть функция str2hex(). Или доработать функцию шифрования, чтоб в результате  не получались управляющие и специальные символы. 



--------------------
PM MAIL WWW   Вверх
Zakhar_Shan
Дата 6.4.2009, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mes @  6.4.2009,  01:47 Найти цитируемый пост)
вам нужно написать свою операцию вывода


может для примерчика есть что?
PM MAIL   Вверх
A5uKa
Дата 6.4.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Код

 return std::string(IntToHex(int(dwID1),8).c_str())+std::string(IntToHex(int(dwID2),8).c_str());

Цитата

E2285 Could not find a match for 'std::string::basic_string(wchar_t *)'
E2031 Cannot cast from 'wchar_t *' to 'std::string'



Это сообщение отредактировал(а) A5uKa - 6.4.2009, 14:49
PM   Вверх
mes
Дата 6.4.2009, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(A5uKa @  6.4.2009,  13:27 Найти цитируемый пост)
как у тебя это


A5uKa, у Вас конфликт юникодовского wchar_t с ansi std::string smile


--------------------
PM MAIL WWW   Вверх
Zakhar_Shan
Дата 6.4.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(A5uKa @ 6.4.2009,  14:27)
как у тебя это
Код

 return std::string(IntToHex(int(dwID1),8).c_str())+std::string(IntToHex(int(dwID2),8).c_str());

работает ?
у меня
Цитата

E2285 Could not find a match for 'std::string::basic_string(wchar_t *)'
E2031 Cannot cast from 'wchar_t *' to 'std::string'

... дома работает, а вот на работе нули дало....
[censored]
но ошибки такой нет...

Это сообщение отредактировал(а) dumb - 8.4.2009, 04:26
PM MAIL   Вверх
A5uKa
Дата 6.4.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Цитата(mes @ 6.4.2009,  14:48)
Цитата(A5uKa @  6.4.2009,  13:27 Найти цитируемый пост)
как у тебя это


A5uKa, у Вас конфликт юникодовского wchar_t с ansi std::string smile

И что мне делать  smile  ...

Доктор , а это лечится ?

Цитата

но ошибки такой нет... 


КАК !? А У МЕНЯ ОНА ОТКУДА :/ 
Проект char ? w_char ? что ещё... не знаю ... Как заставить это работать на BCB2009 !? 
 smile 

Это сообщение отредактировал(а) A5uKa - 6.4.2009, 14:54
PM   Вверх
Zakhar_Shan
Дата 6.4.2009, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(A5uKa @  6.4.2009,  14:52 Найти цитируемый пост)
КАК !? А У МЕНЯ ОНА ОТКУДА :/ 

Да я сам дома на BCB2009 делал, всё работало...

PM MAIL   Вверх
A5uKa
Дата 6.4.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Код

E2285 Could not find a match for 'std::string::basic_string(wchar_t *)'
E2031 Cannot cast from 'wchar_t *' to 'std::string'


вот просто стд стринг ...

Код

String getProcId(){

    return String(IntToHex(int(dwID1),8).c_str())+String(IntToHex(int(dwID2),8).c_str());


Это сообщение отредактировал(а) A5uKa - 6.4.2009, 15:19
PM   Вверх
Alca
Дата 6.4.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 25
Всего: 50



Project -> Options -> Directories and Conditionals ->_TCHAR maps to -> char


--------------------
PM WWW ICQ Skype Jabber   Вверх
A5uKa
Дата 6.4.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Цитата

Project -> Options -> Directories and Conditionals ->_TCHAR maps to -> char 

у меня и так чар тут просто это та же конвертация из std::string в String :/

Это сообщение отредактировал(а) A5uKa - 6.4.2009, 15:43
PM   Вверх
Alca
Дата 6.4.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 25
Всего: 50



Цитата

Код

return String(IntToHex(int(dwID1),8).c_str())+String(IntToHex(int(dwID2),8).c_str());


На эту строку ругается?


--------------------
PM WWW ICQ Skype Jabber   Вверх
A5uKa
Дата 6.4.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Цитата(Alca @ 6.4.2009,  15:53)
Цитата

Код

return String(IntToHex(int(dwID1),8).c_str())+String(IntToHex(int(dwID2),8).c_str());


На эту строку ругается?

Нет...
ругается на это

std::string src =  inputKey;

Код

E2285 Could not find a match for 'std::string::basic_string(const std::string&)'


(inputKey - стринг)
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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