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

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

Войти
Регистрация
Восстановить пароль
 
marks90
2 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 23
#1

string = define + string ; - C++

19.04.2011, 15:30. Просмотров 901. Ответов 3
Метки нет (Все метки)

ОС: Win7
Компилятор: Microsoft Visual Studio 8 |
--------------------------------------------

Понимаю что вопрос глупый, но всё же как сделать так:
SEND_URL = URL_REQUEST+IpszCmdParam ;

есть:
константа URL_REQUEST = “http://127.0.0.1/test.php?id=” ;
переменная IpszCmdParam = “i_id”;
нужно получить из этого одну строку типа:
переменная SEND_URL = "http://127.0.0.1/test.php?id=i_id" ;


примечание:
IpszCmdParam - параметр запуска (строка). из:
C++
1
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR IpszCmdParam, int nCmdShow)
Если можно ответ c кодом.)
Спасибо.

Добавлено через 3 часа 0 минут
Нашёл решение сам.
C++
1
2
3
4
std::string urll(URL_REQUEST);
urll += IpszCmdParam;
const char *SEND_URL = urll.c_str();
cout<<urll.c_str()<<endl;
Работает))

Да не совсем…
Ситуация следующая:
Строку нужно было собрать для подачи в: “СЮДА”

C++
1
HINTERNET hRequest  = ::InternetOpenUrl(hInternet,”СЮДА”,NULL, 0, 0, 0);
Мы её получили: urll.c_str() но дело в том, что тип данных подоваемых “СЮДА”(см.выше)(судя по error C2664: 'InternetOpenUrlW' : cannot convert parameter 2 from 'const char [42]' to 'LPCWSTR') должен быть LPCWSTR.
Тоесть просто TEXT.

Как конвертировать?

Строки URL_REQUEST и IpszCmdParam.
URL_REQUEST константа заданая так:
C++
1
#define URL_REQUEST "http://knopka10.hut2.ru/sam/index.php?id=";
а

IpszCmdParam это параметр запуска получиный путём: file_name.exe -parametr
C++
1
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR IpszCmdParam, int nCmdShow)
где переменная LPSTR IpszCmdParam и есть “parametr” вторая строка.
Или я чёт туплю?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2011, 15:30     string = define + string ;
Посмотрите здесь:

Преобразовать строку String в массив #define byte_t unsigned char и обратно - C++
Собственно танцы с бубном долгое время. Подскажите пожалуйста, как правильно и оптимально это делать. Каждый символ строки при...

Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()? - C++
Понятное дело, что всё обсуждение будет вертеться вокруг аналога NULL. char* f_0 () { return NULL; } char** f_1 () { ...

Как используя C-String а потом и String class варьировать вывод? - C++
Дана задача: при вводе полного И.О.Ф. (в таком порядке) выводить Ф, И и О(только первую букву и .). И если О не задано - выводить только...

Есть ли аналог Map <String,String> чтобы передавать его как указатель на данные? - C++
Добрый день, подскажите, есть ли аналог Map &lt;String,String&gt; чтобы передавать его как указатель на данные? Заранее спасибо!

Идентификатор string не определён при наличии #include <string> - C++
Я ввёл библеотеку #include &lt;string&gt;, но не смотря на это мне выдаёт ошибку: &quot;индефикатор string не определён&quot;. Объясните, пожалуйста, это...

Заменить использование istringstream на вариант из string или string.h - C++
Как заменить 14 строку функцией из &lt;string&gt; или &lt;string.h&gt; и без &lt;sstream&gt; {deleted} П.5.19.Правил Запрещено создавать темы в виде...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт CЭксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,498
19.04.2011, 15:55     string = define + string ; #2
marks90, простое, но не всегда подходящее решение: если есть
Цитата Сообщение от marks90 Посмотреть сообщение
InternetOpenUrlW
, должна бы быть и InternetOpenUrlA использующая ANSI кодировку и не замороченная на многобайтовых символах. Попробуйте её использовать...
IrineK
Заблокирован
19.04.2011, 18:48     string = define + string ; #3
А если так:
C++
1
HINTERNET hRequest  = ::InternetOpenUrl(hInternet, (LPCWSTR)”СЮДА”, NULL, 0, 0, 0);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2011, 06:58     string = define + string ;
Еще ссылки по теме:

Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? - C++
#include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; //using namespace std; class string { private: int...

сохранение/чтение map<string,string*> в файл - C++
Доброго времени суток, Нужно сделать БД для индексации содержимого текстовых файлов, сначала решил, что все просто: читаем файл и...

Ошибка в типе данных 'String' and 'System::String' - C++
Всем привет. помогите, выдает ошибку File1.cpp(40): E2015 Ambiguity between 'String' and 'System::String' ...

Как сравнить введенную string с константой string - C++
Как сравнить переменную String, вводимую с клавиатуры, с const string объявленную в начале кода? #include &lt;iostream&gt; #include...

Не хочет принимать string в шаблон TStack<string> - C++
Уважаемые форумчане,помогите пожалуйста разобраться в чем проблема. Компилятор выдает такую ошибку : &quot;Error C2679: бинарный «&lt;&lt;«: не...


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

Или воспользуйтесь поиском по форуму:
marks90
2 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 23
20.04.2011, 06:58  [ТС]     string = define + string ; #4
Цитата Сообщение от IrineK Посмотреть сообщение
А если так:
C++
1
HINTERNET hRequest  = ::InternetOpenUrl(hInternet, (LPCWSTR)”СЮДА”, NULL, 0, 0, 0);
Так не получается...
error C2731: 'WinMain' : function cannot be overloaded

А ещё если попробовать сложить строки как есть: (с поданным LPSTR IpszCmdParam как описывал ранее)
C++
1
2
3
std::basic_string<TCHAR> urll(URL_REQUEST);
urll += IpszCmdParam;
const TCHAR *SEND_URL = urll.c_str();
то:
error C2679: binary '+=' : no operator found which takes a right-hand operand of type 'LPSTR' (or there is no acceptable conversion)

как я понял ему не нравится тип 'LPSTR' у IpszCmdParam….(
как быть?

В итоге должен получится urll.c_str() пригодный для в ставки:
C++
1
HINTERNET hRequest  = ::InternetOpenUrl(hInternet,“СЮДА”,NULL, 0, 0, 1);
Добавлено через 49 минут
Цитата Сообщение от IrineK Посмотреть сообщение
А если так:
C++
1
HINTERNET hRequest  = ::InternetOpenUrl(hInternet, (LPCWSTR)”СЮДА”, NULL, 0, 0, 0);
Работает) но зачем, ведь...
получим так:
(LPCWSTR) urll.c_str() = 00FF0043 ;
запутался...

Добавлено через 23 минуты
Всё!!! Допетрил)))
Проблема решена:
(LPCSTR) urll.c_str() спас ситуацию)))

C++
1
2
3
4
5
6
7
8
9
10
11
12
#define URL_REQUEST "http://knopka10.hut2.ru/sam/index.php?id="
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR IpszCmdParam, int nCmdShow)
{ 
CreateReadConsole(); // консоль
std::string urll(URL_REQUEST);
urll += IpszCmdParam;
const char *SEND_URL = urll.c_str();
 
HINTERNET hInternet = ::InternetOpen(TEXT("Test URL"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET hRequest  = ::InternetOpenUrlA(hInternet,(LPCSTR) urll.c_str(),NULL, 0, 0, 1);
}
Всем огромное спасибо!!!
Yandex
Объявления
20.04.2011, 06:58     string = define + string ;
Ответ Создать тему
Опции темы

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