Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 711
от 15.04.2007, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 472, Экспертов: 81
В номере:Вопросов: 6, Ответов: 9


Вопрос № 81773: Здравсивуйте эксперты. помогите! Как из переменой типа CString забить данные в массив типа char? Спаибо ..
Вопрос № 81790: доброго времени суток. Возможно, Вы могли бы помочь мне при написании программы по следующему заданию на Visual C++: 1. TCP-Клиент. Он соединяется с сервером, адрес которого вводится с клавиатуры. Посылает ему запрос на выдачу текущего времени, с...
Вопрос № 81829: Здравствуйте! Никак не могу понять, в чём проблема. У меня есть класс для работы с большими числами: class CNumbers { char *cp; char *dp; unsigned int kcp; unsigned int kdp; bool fm; public: CNumbers...
Вопрос № 81883: Здравствуйте Как програмно определить является-ли кнопка кнопкой по умолчанию? Икак програмно зделать её по умолчанию? Спаибо!...
Вопрос № 81912: Уважаемые эксперты! Подскажите пожалуйста как склеить 2а файла формата .exe в один без протери работоспособности естественно (для DOS)... на сколько я знаю структура .com файлов и .exe отличается. в исполняемый модуль я передаю имя...
Вопрос № 81915: Здраствуйте эксперты, помогите пожалуйста составить программу, очень нужно, всем спасибо....

Вопрос № 81.773
Здравсивуйте эксперты.
помогите!
Как из переменой типа CString забить данные в массив типа char?
Спаибо
Отправлен: 09.04.2007, 19:09
Вопрос задал: Tatarin (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lomer
Здравствуйте, Tatarin!
Например,так:
CString a;
const char *b=(LPCTSTR)a;
b - массив символов.
Ответ отправил: Lomer (статус: 4-ый класс)
Ответ отправлен: 09.04.2007, 19:20
Оценка за ответ: 5
Комментарий оценки:
Работает как и все предыдущие

Отвечает: Jadd
Здравствуйте, Tatarin!
Можно и так:
CString theString( "This is a test" );
LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
_tcscpy(lpsz, theString);

Кстати, взято из MSDN.

Удачи

---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 09.04.2007, 20:15
Оценка за ответ: 5
Комментарий оценки:
Спасибо проповал работает!

Отвечает: kool
Здравствуйте, Tatarin!
Например, так:
CString str="1234567890";
char *p;
p=str.GetBuffer(1);
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 10.04.2007, 07:31
Оценка за ответ: 5
Комментарий оценки:
Спасибо помогло !

Отвечает: Mister Vova
Здравствуйте, Tatarin!
CString m_Cst;
char m_Ch[255];
for(int i=0;i<m_Cst.GetLength();i++) m_Ch[i]=m_Cst[i];// итак мажно
---------
Всё про Себя Тут Www.SahajaYoga.Ru
Ответ отправил: Mister Vova (статус: 2-ой класс)
Ответ отправлен: 10.04.2007, 18:23
Оценка за ответ: 5
Комментарий оценки:
Кросавчег!


Вопрос № 81.790
доброго времени суток. Возможно, Вы могли бы помочь мне при написании программы по следующему заданию на Visual C++:
1. TCP-Клиент. Он соединяется с сервером, адрес которого вводится с клавиатуры. Посылает ему запрос на выдачу текущего времени, строка запроса так же вводится с клавиатуры. После этого получает от сервера ответ, с текущим временем сервера. Полученное время и время прошедшее с момента отправки запроса до получения ответа выводятся на экран.
2.TCP-Сервер. Ждет соединения клиента, принимает от него запрос и выводит его на экран. После чего посылает клиенту сообщение – текстовую строку, содержащую текущее время системы.

Заранее Спасибо.
Отправлен: 09.04.2007, 20:10
Вопрос задала: Sleeping (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Решетник Д
Здравствуйте, Sleeping
...........Sockets............
Готовое решение давать не буду. Вот отправные функции:
WSAStartup
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
---------для сервера
SOCKADDR_IN sin;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(IP);
sin.sin_port = htons(PORT);
(bind(iSock,(LPSOCKADDR)&sin,sizeof(sin)
listen(iSock,MAXCONN)
------------------------
--------лоя клиента
SOCKADDR_IN sin;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(IP);
sin.sin_port = htons(PORT);
connect(iSock,(SOCKADDR*) &sin, sizeof(sin)
------------------------
recv - полцчить данные
send - отправить данные
WSACleanup

_-------------------------------
Также можно воспользоваться библиотекой wininet (в поставке Виндовс) для реализации клиента. Копать сюда:
InternetOpen
InternetConnect
InternetCloseHandle
HttpOpenRequest
HttpSendRequest
InternetReadFile

Думаю, Delphi World (или C++ World содержит примеры), если вы не сможете найти решение самостоятельно...
Удачи
Все это можно связать событиями через:
WSACreateEvent
WSAEventSelect
WSAWaitForMultipleEvents

---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: Студент)
Ответ отправлен: 09.04.2007, 23:14


Вопрос № 81.829
Здравствуйте!

Никак не могу понять, в чём проблема. У меня есть класс для работы с большими числами:
class CNumbers
{
char *cp;
char *dp;
unsigned int kcp;
unsigned int kdp;
bool fm;
public:
CNumbers ();
~CNumbers ();
CNumbers operator+ (CNumbers sl);
CNumbers operator- (CNumbers sl);
CNumbers operator* (CNumbers sl);
CNumbers operator/ (CNumbers sl);
CNumbers& operator= (char* str);
CNumbers& operator= (CNumbers &str);
void MakeOtr ();
friend ostream &operator<< (ostream &stream, CNumbers t);
};

Я реализую, например, перегрузку оператора +
CNumbers CNumbers::operator+ (CNumbers sl)
{
CNumbers sum;
/*реализацию вырезала, не суть важно, что конкретно я здесь делаю, но меняются свойства переменной sum, т.е. выделяется память под строки, строки заполняются, меняются kcp, kdp, fm, к концу преобразований sum имеет корректный вид */
return sum;
}
Также я перегружаю оператор присваивания, сам по себе он работает корректно.
Но когда я пытаюсь, например, вычислить
CNumbers a, b, c;
a = "1b = "2c = a+b;
то последнее присваивание работает неверно: на вход функции CNumbers& operator= (CNumbers &str); поступает объект класса, в котором числовые данные сохранены, а строки равны "" (т.е. str = {"", NULL, 1, 0, 0}). При этом на выходе из функции CNumbers::operator+ (CNumbers sl) sum = {"3Заранее спасибо!
Отправлен: 10.04.2007, 00:50
Вопрос задала: Verena (статус: 9-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 13)

Отвечает: estiGi
Здравствуйте, Verena!
Могу предположить, что вы теряете или корректно не сохраняете значения в cp и dp.
Покажите код все ж таки. Желательно код тех операторов, которые задействованы в примере :-)
Ответ отправил: estiGi (статус: Студент)
Ответ отправлен: 10.04.2007, 01:17
Оценка за ответ: 5
Комментарий оценки:
Спасибо за помощь в минифоруме, всё работает!


Вопрос № 81.883
Здравствуйте
Как програмно определить является-ли кнопка кнопкой по умолчанию?
Икак програмно зделать её по умолчанию?
Спаибо!
Отправлен: 10.04.2007, 11:37
Вопрос задал: Tatarin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Tek
Здравствуйте, Tatarin!
Является ли кнопка кнопкой по умолчанию определяется стилем окна кнопки BS_DEFPUSHBUTTON.
Установить программно с помощью метода SetWindowLong
Определить GetWindowLong

---------
WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: Студент)
Ответ отправлен: 10.04.2007, 11:45
Оценка за ответ: 3
Комментарий оценки:
Не понятно че смотреть и где это брать


Вопрос № 81.912
Уважаемые эксперты!
Подскажите пожалуйста как склеить 2а файла формата .exe в один без протери работоспособности естественно (для DOS)...
на сколько я знаю структура .com файлов и .exe отличается.

в исполняемый модуль я передаю имя файла к которому необходимо подключить функцию проверки, которая находится в этом же файле.

и дальше не хватает знаний о структуре файла .exe ...

Приложение:

Отправлен: 10.04.2007, 13:54
Вопрос задал: Vladimir K (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Boriss
Здравствуйте, Vladimir K!
Да нет, сумма исполняемых файлов не равна одному исполняемому файлу. Можно просто вызывать другой исполняемый файл с помощью, например, execl. Пример имеется в Вашей среде разработки
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: mte
WWW: Программирование на Паскале
----
Ответ отправлен: 10.04.2007, 14:17
Оценка за ответ: 3
Комментарий оценки:
можно... только нужен цельный файл...
тут нужна технология вируса для склейки файлов...
с .com файлами проще... сохраняем прервые байты файла в буфер. подключаем в конец файла функцию проверки... в первые байты записываем процедуру передачи управления на процедуру проверки... проводим проверку... восстанавливаем начальные байты файла... передаем из процедуры проверки управление основной программе...

или что-то типа этого...


Вопрос № 81.915
Здраствуйте эксперты, помогите пожалуйста составить программу, очень нужно, всем спасибо.

Приложение:

Отправлен: 10.04.2007, 14:12
Вопрос задал: Andreypnz (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mister Vova
Здравствуйте, Andreypnz!
Вот старайся изучать сам такие вопросы

Приложение:

---------
Всё про Себя Тут Www.SahajaYoga.Ru

Ответ отправил: Mister Vova (статус: 2-ой класс)
Ответ отправлен: 10.04.2007, 18:51


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.50 (beta) от 15.04.2007
Яндекс Rambler's Top100

В избранное