![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Чисто ради интереса подметил одну проблемку :
af = new Af; LPVOID sParam; af->af_potoc = AfxBeginThread((AFX_THREADPROC)af->af(sParam), (LPVOID)&af->af_out, THREAD_PRIORITY_NORMAL, 0, 0, 0); GlobalFree(af); Ну вот af_potoc, af(), af_out - это всё его члены. Дык вот Кстати сперва ругался на (AFX_THREADPROC)af->af - ну тут всё понятно typdef правда не может использовать прегружаемые функциив таком виде - но я как видите использовал несколько другой вариант - ещё сам незнаю, будет ли работать Знающие приём |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Алло ?... как проблему то решить - интересно ведь... почему без использования указателей класс нормально отрабатывает CWinThread = AfxBeginThread(%%%%%%%%).
Почему ? |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
?
Я все равно буду держать тему "на верху" |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
Какого типа у тебя af_potoc ?
|
|||
|
||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
У тебя здесь весело получилось: происходит вызов метода af->af(sParam) (с неициализироанным значением sParam кстати), то значение, что этот метод возвращает, приводится к типу "указатель на функцию типа UINT (*)( LPVOID pParam ); и передается в AfxBeginThread как адрес функции. З.Ы. Что бы метод класса работал процедурой потока, надо объявить его статическим, и передавать не возвращаемое им значение, а его адрес. -------------------- Удачи |
|||
|
||||
| En_t_end |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Я не имею такого опыта, как вы многоуважаемый Adil', поэтому я пока придерживаюсь этих принципов. А вот когда программа работает не правильно, вот тогда я копаю и докапываюсь до истины - такой способ уже оправдал себя. Добавлено @ 19:08 af_potoc - CWinThread. Добавлено @ 19:14 Я наверное знаю, что надо сделать : в высокой степени абстракции, я представляю себе это так :
Это сообщение отредактировал(а) En_t_end - 1.2.2005, 19:16 |
||||
|
|||||
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
|
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Perchilla
Да я знаю, но ты спросил меня о типе. |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
Ну так действуй, раз знаешь
|
|||
|
||||
| Adil' |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
В более низкой степени абстракции:
З.Ы.
CWinThread и CWinThread* это разные типы З.З.Ы. En_t_end, твой подход, наверно, работает, только, представляю себе, какой кровью это даётся! Может лучше MSDN почитывать? -------------------- Удачи |
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
CWinThread и CWinThread*
Интересно... хммм... надо будет глянуть в MSDN. "представляю себе, какой кровью это даётся!" Очень сложно, поэтому я заново начал перечитывать все источники, заново изучаю стеки, сейчас например |
|||
|
||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
Это сообщение отредактировал(а) Adil' - 2.2.2005, 17:20 -------------------- Удачи |
|||
|
||||
| Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
En_t_end Не обижайся это не к тебе-это нащши общие проблемы Это сообщение отредактировал(а) Coocky - 2.2.2005, 17:25 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
"Имелось ввиду, что некий тип и указатель на этот тип - это разные типы"
А дык указатель на этот тип - тип указателя : указатель. // Ну блин CWinThread - класс "Не обижайся это не к тебе-это нащши общие проблемы" То есть не я один такой |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
En_t_end
Нет.Просто не у одного тебя запары бывают -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |