Здравствуйте уважаемые! Я дико извиняюсь за свой прошлый вопрос (735). Действительно, статус бар я устанавливаю через пункт меню Insert ActiveX Control... Но диалог при его наличии (бара) не создаётся. Так чтож сделать (куда хоть копнуть)? Спасибо.
Добрый день, Чел! А какой именно 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) возникнет нехватка памяти из-за этих кусочков, созданных перед функцией?? Извините за длинный вопрос, но так получилось. :)) Дмитрий.
Добрый день, Дмитрий! Для этого есть такая вещь как указательна на указатель т.е. 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!!
Доброе время суток, 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.