![]() |
|
Модераторы: bsa |
![]()
|
|
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Вообщем пишу дллку на С++, а интерфейс весь на делфи, вообще выложу кое какие куски кода и напишу в чём не могу разобраться...
bool __stdcall rtcOCSLogin( wchar_t* serverIP, wchar_t* userAccount, wchar_t* userPassword ) // serverIP, userAccount, userPassword получаю из Делфи и нужно вставить их в кое-какие места... strcpy(szMessage, "CommandID=[0];LineDevID=[14];CallID=[];Param1=[jan];Param2=[53];"); strcpy(szServerName, "192.168.2.4"); userAccount в Param1=[сюды] userPassword в Param2[сюды] serverIP вместо айпишника... + я отсылаю строку ( CommandID=[0];LineDevID=[14];CallID=[];Param1=[jan];Param2=[53]; ) кое-какому серверу и мне он отсылает её обратно, только с правильными Param1=[логин] и Param2=[пароль]... Как мне вытащить логин и пароль из параметров, из принятой строки? С++ только с недавнего времени изучаю, поэтому прошу отнестись с пониманием и помочь! Заранее МЕГА-Спасибо! |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
и как понимать сие творение?
|
|||
|
||||
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
mrbrooks, а что именно непонятно?
|
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
тебе нужно найти в строке подстроку (strstr) "Param1=[" или "Param2=[" и вытащить все символы до ']'
|
|||
|
||||
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Rififi, ну я впринципе так и догадывался! Только какой функцией? Или если можно какой-нибудь пример! буду очень благодарен! И кстате не подскажете как быть с первым вопросом?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Romashkaz, напиши пример, что отсылается серверу, что приходит от сервера, и что оттуда надо вытащить.
я так понял, нужно из вытащить выделенные данные: CommandID=[0];LineDevID=[14];CallID=[];Param1=[jan];Param2=[53];
Это сообщение отредактировал(а) bsa - 20.11.2008, 12:35 |
|||
|
||||
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
bsa, спасибо большое! Вечером попробую... А не подскажешь как с 1 вопросом будет? Там насколько я понимаю нужно сменить тип, чтобы подставить всё как надо... Ковырялся пару дней так и не получилось... Использовал функцию wcstombs...
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Romashkaz, вообще-то я дал ответ на 1-й вопрос, который ты задал в первом сообщении.
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
|
|||
|
||||
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Всем огромное спасибо! Буду тренироваться :P
|
|||
|
||||
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
Так, есть ещё один вопрос....
Вообще вот весь код...
Вообщем, если подставляю szServerPort в htons, то выдает вот такую ошибку - j:\11.11.08 - сделал сокеты на с++\simple rtc\simple rtc\rtc\rtc.exports.cpp(208) : error C2664: 'htons' : cannot convert parameter 1 from 'char [1024]' to 'u_short' ... Как с этим бороться? З.Ы. и правильно ли выставлет тип szServerName и szMessage ? А то походу выдает ошибку в названии сервера... Вообщем срабатывает данная функция : if (connect(sClient, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR) { logWrite(L"connect failed", LOG_ERROR_MESSAGE); return 1; } Тоесть выводит, что коннект файлд... |
|||
|
||||
| xvr |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Общий ответ - почитать букварь по socket
|
||||||||||
|
|||||||||||
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
xvr, не пользовался никогда WSAGetLastError поэтому и не знаю с чем её едят... А вот насчёт szMessage и szServerName... Хочу поинтересоваться правильно ли я выбрал тип? Тоесть чтоб код, тоесть szServerName ( айпи ) был читабелен для программы, когда я его подставляю в нужное место...
Это сообщение отредактировал(а) Romashkaz - 20.11.2008, 20:42 |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
С тем же, чем и остальные функции, возвращающие код ошибки. Ее надо просто позвать и распечатать число, которое она вернет. Иначе это все гадание на кофейной гуще - почему connect не сработал.
|
||||
|
|||||
| Romashkaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.9.2008 Репутация: нет Всего: нет |
xvr,
такс, не могу разобраться с WSAGetLastError, можно мне как особо одаренному пример для моей программки? Дело в том, что я ещё пишу дллку и сообщение я могу увидеть только с помощью функции logWrite(сообщение, информация о сообщении) Пример - logWrite(L"message", LOG_INFO_MESSAGE) или logWrite(serverIP, LOG_INFO_MESSAGE) ... но дело в том, что как я понял что WSAGetLastError выдает номер ошибки, следовательно у неё тип int, а насколько я понял, вывести я могу только wchar_t* ... Заранее извиняюсь за сырость моих знаний, а скорее всего даже их отсутствия... Но хочу научиться! Учусь сразу на практики... Знаю несколько других языков программирования, но С++ - это что другое, более гибкое, сложное и интересоное! Спасибо |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |