![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cthutq |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 16.4.2006 Репутация: нет Всего: нет |
есть например функция WaitForMultipleObject
она просит на вход массив описателей
я хочу создать класс-обертку, которая в конструкторе принимает описатель, а в деструкторе закрывает его
а теперь я хочу подсунуть для WaitForMultipleObject вектор объектов Object но на сколько я понимаю эта функция просто оперирует указателем на начало массива и каждый раз просто разыменовывает указатель. или просто работает как с массивом как можно прозрачно создать вектор таких объектов чтоб WaitForMultipleObject работала с ним как с обычным массивом ? P.S. Тоесть нужен объект-контейнер, который внутри будет хранить массив объектов, а для WinAPI предоставлять массив HANDLE-ов |
||||
|
|||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
cthutq,
При условии, что выравнивание правильное, если нет, тогда, в принципе, можно ждать сюрпризов. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
А че в классе нельзя вызвать этот вейт? напиши метод в котором он и будет вызываться используя приватные укалатели на массив хендлов -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| cthutq |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 16.4.2006 Репутация: нет Всего: нет |
да в том то и дело, что Object может иметь размер > sizeof(HANDLE)
придется постоянно создавать из массива Object массив HANDLE например
|
||||||
|
|||||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
зачем? создай тогда класс где будут собиратся все объекты в кучу, и код для чего приведен? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| cthutq |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 16.4.2006 Репутация: нет Всего: нет |
||||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
ты проблемку объясни получше , получше и посоветуем
на кой надо этот класс с одним хенделом? можно в нем весь массив хенделов хранить -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| cthutq |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 16.4.2006 Репутация: нет Всего: нет |
описатель представляет собой SOCKET. Обертка нужна для создания и удаления описателя. Кроме того с этой оберткой удобнее читать и писать в сокет. Есть сервер, который хранит вектор этих объектов (Socket). Есть массив событий, которые ассоциированны с сокетами.
Но сервер использует WinAPI функцию WSAWaitForMultipleEvents, которая хочет массив событий. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
терь вопрос где?
Добавлено @ 16:29 логичнее всего было бы написать метод сервера с вызовом этой функции (вейта) а в классе сокета, создать метод который отдает указатель на хендл сокета -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| cthutq |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 16.4.2006 Репутация: нет Всего: нет |
он был в самом начале (ну и название темы
а оператор у меня на что в классе Socket
так он и выполняется в методе сервера. Только сервер хранит массив Socket, а не массив SOCKET при этом придется постоянно копировать (тоесть создавать) временный массив SOCKET что очень накладно |
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
ты читал это? весь язык си построен на указателях имхо вот это чтоли? дык указатель на него передай а не сам объект -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |