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

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


Информационный Канал Subscribe.Ru


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

Выпуск № 249
от 02.05.2003, 18:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 745
Отправлено ответов: 1633
Активность: 219.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ramzes
Статус: Опытный
Общий рейтинг: 131.13
URL: Microsoft homepage
[Подробней >>]
DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 111.85
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 115.38
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 738. Здравствуйте уважаемые! Я дико извиняюсь за свой прошлый вопрос (735). Действительно, статус бар я у... (ответов: 1)
Вопрос № 739. Здравствуйте эксперты! Есть пара вопросов. Суть следующая: Имеется класс, допустим TClass(см. прилож... (ответов: 3)
Вопрос № 740. V VC6 ya sozdal project bez WINSOCKET kak dobavit v nego etu podderzhku bez sozdania novogo projecta... (ответов: 1)

Вопросов: 3, ответов: 5


 Вопрос № 738

Здравствуйте уважаемые!
Я дико извиняюсь за свой прошлый вопрос (735). Действительно, статус бар я устанавливаю через пункт меню Insert ActiveX Control... Но диалог при его наличии (бара) не создаётся.
Так чтож сделать (куда хоть копнуть)?
Спасибо.



Вопрос отправлен: 28.04.2003, 23:01
Отправитель: Чел

[Следующий вопрос >>] [Список вопросов]

Отвечает Ramzes

Добрый день, Чел!
А какой именно ActiveX Control ты ставишь ?
Я например поставил Microsoft StatusBar Control v6.0, после чего в ToolBox-e появилась соответствующая иконка и оттуда уже поставил StatusBar на Dialog, и опять же все нормально работает.
Там был еще какой-то StatusBar, но он у меня вообще не insert-нулся, видите-ли CFrameWnd ему подавай.

Ответ отправлен: 29.04.2003, 13:32
Отправитель: Ramzes


 Вопрос № 739

Здравствуйте эксперты!
Есть пара вопросов. Суть следующая:
Имеется класс, допустим TClass(см. приложение 1). Надо написать функцию, на входе которой один TClass, а на выходе -- аж целых 3(три). После некоторых терзаний у меня вышло следующее (см. приложение 2). То бишь, в функцию передаются три указателя на TClass, один из которых -- входящий, а два остальных -- выходящие (еще один выходящий возвращается return'ом). Однако имеется одна загвоздка.
Для применения этой ф-ции нужно три экземпляра TClass. Приходиться делать так (см. приложение 3). Теперь вопросы:
1) Можно ли как нибудь еще получить из функции три указателя(экземпляра) чего-нить?
2) При создании двух экземпляра TClass b1 и b2 выделяется память. Что с ней происходит когда этим экземплярам присваиваются(передаються) указатели на други участки памяти?? То есть может ли возникнуть ситуация, что после n-го кол-ва использования такой конструкции (прилож.3) возникнет нехватка памяти из-за этих кусочков, созданных перед функцией??
Извините за длинный вопрос, но так получилось. :))
Дмитрий.


Приложение:


Вопрос отправлен: 29.04.2003, 11:38
Отправитель: Дмитрий (dm_dds@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает DiGiT[old]

Добрый день, Дмитрий!
Для этого есть такая вещь как указательна на указатель т.е. Class **p1; И передавай их три в функцию а возвращать это изврат. Функции в си возвращают либо код ошибки либо непосредственно результат, а пол результата некрасиво :).
2) Что такое объект ??? Это область памяти где лежат переменные(ну вообще говоря могут быть и идентификаторы класса, указатель на таблицу функций для полиморфизма и др.)
За работу с этой областью памяти отвечают методы класса вот и все я думаю понятно? А вообще бред какой-то :)

Ответ отправлен: 30.04.2003, 06:30
Отправитель: DiGiT[old]


Отвечает Yuri Gordienko

Приветствую Вас, Дмитрий!
1.Если использовать твой метод(вызов Func), то необходимо(более корректно) в классе TClass еше определить оператор '='.
Способов возврата много: использовать структуры,массивы,связанные списки и т.д.
Для твоего случая проще передать в функцию массив из указателей.
void Func(TClass **buf)
{
TClass *x1, *x2, *x3;
//...
*buf[0] = *x1;
*buf[1] = *x2;
*buf[2] = *x3;
}
int main()
{
TClass* buf[3];
buf[0] = new TClass();
buf[1] = new TClass();
buf[2] = new TClass();
Func(buf);
delete [] buf;
}
2.Если не вызывать деструктор, то память теряется. Используй delete b1; delete b2; delete b3;


Ответ отправлен: 30.04.2003, 10:16
Отправитель: Yuri Gordienko


Отвечает Ramzes

Доброе время суток, Дмитрий!
1) Нет, ты все правильно сделал
2) Перед тем как присвоить указателю какое-нить другое значение сделай
delete ptr
и только потом
ptr = ptr1
a то у тебя будут утечки памяти, что конечно же очень плохо.


Ответ отправлен: 29.04.2003, 13:37
Отправитель: Ramzes


 Вопрос № 740

V VC6 ya sozdal project bez WINSOCKET kak dobavit v nego etu podderzhku bez sozdania novogo projecta. Ya hotel ispolzovat CSocket i ne rabotaet.
skazite plz gde est prostoy primer s CSocket dla servera i clienta;
Spasibo!!



Вопрос отправлен: 29.04.2003, 12:05
Отправитель: Alex (felistovichs@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ramzes

Доброе время суток, Alex!
#include
а вообще CSocket это просто оболочка для API-шных функций работы с сокетами, поэтому можешь использовать API функции
WSAStartup, send, recv, и.т.д
в MSDN очень подробно описана работа с сокетами и есть примеры программ с реализацией и клиента и сервера.


Ответ отправлен: 29.04.2003, 13:42
Отправитель: Ramzes



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (35)
C / C++ (28)
Perl (6)
Delphi (13)
Pascal (24)
Basic / VBA (5)
Java / JavaScript (8)
PHP (4)
MySQL / MSSQL (4)
Пользователю
Windows 95/98/Me (29)
Windows NT/2000/XP (24)
"Железо" (25)
Поиск информации (12)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (10)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (5)
КоАП (4)

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




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное