Перейти к содержанию

Рекомендуемые сообщения

вобщем имеется:

unsigned char qq;
string stroka;

мне надо использовать функцию c переменной stroka, но эта функция работает с переменными типа unsigned char.

бьюсь уже целый день, гуглю как ковертировать из unsigned char в string, ниче путного найти не могу

то ли дело в делфи, strtoint, strtochar и т.д. и т.п. =)

помогите пожалуйста

Ссылка на комментарий
как ковертировать из unsigned char в string

Можно так


qq= new(char);
strcpy(qq,stroka.c_str());

или так


char *qq = new char[strlen(stroka.c_str()) + 1];
strcpy(qq,stroka.c_str());

Второй случай надёжней, так как предусматривает защиту от ошибок переполнения буфера (запись за пределы выделенной памяти) при передачи параметров в функцию.

Ссылка на комментарий
  • 2 недели спустя...

вот на delphi я нашел такую вещь

var
rcvrdata: TMemoryStream;
idHttp1: TidHttp;
begin
idHttp1 := TidHttp.Create(nil);
rcvrdata := TMemoryStream.Create;
idHttp1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)';
idHttp1.Request.AcceptLanguage := 'ru';
idHttp1.Response.KeepAlive := true;
idHttp1.HandleRedirects := true;
try
//idHttp1.Get(Edit1.Text, rcvrdata);
edit1.Text:= idHttp1.Get('http://www.whatismyip.com/automation/n09230945.asp');
finally
idHttp1.Free;
end;

с помощью этой процедуры можно узнать свой внешний ip...

вот на с++ надо такое же сделать, не могу найти компоненту idhttp. в delphi она была на вкладке indy по-моему, а тут не могу найти...

Ссылка на комментарий

Mr. Deeds

для C++ Builder

http://www.cyberforum.ru/cpp-builder/thread181632.html

если через winapi, то создаёшь сокет, формируешь запрос на вебсайт и парсиш ответ регулярками

или вот сайт без всякого мусора, выдаёт только ИП http://www.whatismyip.com/automation/n09230945.asp

хотя хз, я в этом не разбираюсь

Ссылка на комментарий

NAT спасибо, да только я видел уже это ((

вобщем суть проблемы, на delphi я описал вот такую процедуру

procedure TForm1.Button1Click(Sender: TObject);
var
rcvrdata: TMemoryStream;
idHttp1: TidHttp;
begin
idHttp1 := TidHttp.Create(nil);
rcvrdata := TMemoryStream.Create;
idHttp1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)';
idHttp1.Request.AcceptLanguage := 'ru';
idHttp1.Response.KeepAlive := true;
idHttp1.HandleRedirects := true;
try
//idHttp1.Get(Edit1.Text, rcvrdata);
edit1.Text:= idHttp1.Get('http://www.whatismyip.com/automation/n09230945.asp');
finally
idHttp1.Free;
end;
reestr:=TRegistry.Create;
//HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\{6C3C32E9-AC71-404D-83F4-99E01EBFB7D7}
reestr.RootKey:=HKEY_LOCAL_MACHINE;
reestr.OpenKey('\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\{6C3C32E9-AC71-404D-83F4-99E01EBFB7D7}',false);
reestr.WriteString('IPAddress',edit1.Text);
reestr.CloseKey;
reestr.Free;
end;

что хотел сделать:

1. узнаем наш внешний ip

2. вставляем это значение в ключ реестра

проблемы:

1. ключ реестра типа reg_Multi_sz, вобщем мультистроковый, а значение которое хочу воткнуть просто строковое

2. так и не разобрался как конвертировать строковое в мультистроковое

подумал что на с++ что-нибудь получится...

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...