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

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

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

string = define + string ; - C++

19.04.2011, 15:30. Просмотров 955. Ответов 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” вторая строка.
Или я чёт туплю?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2011, 15:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос string = define + string ; (C++):

Доступ к паре в map<string, vector<pair<string, string>>>Temp - C++
Подскажите пожалуйста как получить данные в векторе пар ? void showData(const map&lt;string, vector&lt;pair&lt;string, string&gt;&gt;&gt;Temp) { ...

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

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

Как преобразовать char* в string и вывести переменную string на экран? - C++
for (int k = 0; k &lt; 10; k++) { int x = (int)rand() / RAND_MAX + rand() % 6 + 2; char *chars = new char; ...

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

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

3
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
19.04.2011, 15:55 #2
marks90, простое, но не всегда подходящее решение: если есть
Цитата Сообщение от marks90 Посмотреть сообщение
InternetOpenUrlW
, должна бы быть и InternetOpenUrlA использующая ANSI кодировку и не замороченная на многобайтовых символах. Попробуйте её использовать...
0
IrineK
Заблокирован
19.04.2011, 18:48 #3
А если так:
C++
1
HINTERNET hRequest  = ::InternetOpenUrl(hInternet, (LPCWSTR)”СЮДА”, NULL, 0, 0, 0);
0
marks90
2 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 23
20.04.2011, 06:58  [ТС] #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);
}
Всем огромное спасибо!!!
0
20.04.2011, 06:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2011, 06:58
Привет! Вот еще темы с ответами:

Где и почему используют ту или иную строку std::string, char[], System::String^ ? - C++
Где и почему используют ту или иную строку std::string, char, System::String^ ? Объясните пожалуйста где нужно использовать...

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

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

Здравствуйте! Создал класс 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...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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