Как извлечь адрес функции-члена ??
От: S.T.A.L.I.N  
Дата: 01.12.07 20:44
Оценка:
Здравствуйте.

Я пишу свой враппер для ВИНАПИ.
Вот какая проблема возникла у меня с классом окна:

/============================================ window.h =================================================
// general main window class
class wnd {
HWND hWnd; // хэндл окна
WNDCLASSEX wc;
....
public:
wnd(HINSTANCE hInst, int nCmdShow, LPCSTR lpCapt,
unsigned int uiLeft, unsigned int uiTop,
unsigned int uiWidth, unsigned int uiHeight); // конструктор

....
};

// оконная процедура
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // TODO не получилось вставить оконную процедуру как член класса,
// т.к. косячит ПРИСВАИВАНИЕ wc.lpfnWndProc = WndProc в КОНСТРУКТОРЕ;


/============================================= window.cpp ===================================================

// конструктор
wnd::wnd(HINSTANCE hInst, int nCmdShow, LPCSTR lpCapt,
unsigned int uiLeft, unsigned int uiTop,
unsigned int uiWidth, unsigned int uiHeight)
{
// инициализация

....

// собираем структуру wc

....
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc; // вот здесь будет ошибка, если сделать WndProc функцией-членом класса wnd
wc.cbClsExtra = 0;

....


Как сделать WndProc членом класса wnd и при этом правильно присвоить адрес функции обработки сообщений в wc.lpfnwndproc ??????????
Re: Как извлечь адрес функции-члена ??
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.12.07 20:47
Оценка:
Здравствуйте, S.T.A.L.I.N, Вы писали:

STA>Как сделать WndProc членом класса wnd и при этом правильно присвоить адрес функции обработки сообщений в wc.lpfnwndproc?


Никак. Смотри как это сделано в STL/MFC/WTL, учись.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Как извлечь адрес функции-члена ??
От: Сергей Мухин Россия  
Дата: 01.12.07 21:06
Оценка: :)
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, S.T.A.L.I.N, Вы писали:


STA>>Как сделать WndProc членом класса wnd и при этом правильно присвоить адрес функции обработки сообщений в wc.lpfnwndproc?


A>Никак. Смотри как это сделано в STL/MFC/WTL, учись.


я бы сказал грубее RTFM, простите.

а после этого заметил, если пипл не знает элементарных вещей, зачем он лезет в глобальные врапинги?
---
С уважением,
Сергей Мухин
Re[2]: Как извлечь адрес функции-члена ??
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.12.07 21:08
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, S.T.A.L.I.N, Вы писали:


STA>>Как сделать WndProc членом класса wnd и при этом правильно присвоить адрес функции обработки сообщений в wc.lpfnwndproc?


A>Никак. Смотри как это сделано в STL/MFC/WTL, учись.


Извиняюсь, конечно же ATL/MFC/WTL
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Как извлечь адрес функции-члена ??
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.12.07 21:46
Оценка: 3 (1)
Здравствуйте, Сергей Мухин, Вы писали:

СМ>я бы сказал грубее RTFM, простите.


Да я тоже, просто настроение сегодня очень культурное.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Как извлечь адрес функции-члена ??
От: S.T.A.L.I.N  
Дата: 02.12.07 07:38
Оценка: -1
2Сергей Мухин

Лезет затем чтоб столкнуться с этими элементарными вещами.

RTFM ? Хоть мануал то укажи. Пусть даже и факинг.

Кажись форум придуман не для того чтоб сыпать гадостями. IMHO.

Иногда лучше ничо не сказать, чем брызгать слюной.


2adontz

Пасяб порейтил твои посты. Пусть культурное настроение не оставляет тебя.
Re[5]: Как извлечь адрес функции-члена ??
От: YuriKobets Россия http://www.truelaunchbar.com — замена панели быстрого запуска
Дата: 02.12.07 08:11
Оценка: 2 (1)
Здравствуйте, S.T.A.L.I.N, Вы писали:

STA>RTFM ? Хоть мануал то укажи. Пусть даже и факинг.


Взять любую книжку всеми любимого Страуструпа. Это и мануал и фак и даже то что на буковку F. Там можно найти и о неявном прараметре у членов класса, и о волшебном слове static. А если немного поискать на том же codeproject.com то можно найти кучу враперов и посмотреть как сделано там.
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[6]: Как извлечь адрес функции-члена ??
От: S.T.A.L.I.N  
Дата: 02.12.07 08:16
Оценка:
Здравствуйте, YuriKobets

Не лишено "буковок", однако с пользой.

Порейтил.
Re[5]: Как извлечь адрес функции-члена ??
От: Сергей Мухин Россия  
Дата: 02.12.07 08:24
Оценка:
Здравствуйте, S.T.A.L.I.N, Вы писали:

STA>RTFM ? Хоть мануал то укажи. Пусть даже и факинг.


этот вопрос всплывает раз в месяц! а может и того чаще! задолбало!
---
С уважением,
Сергей Мухин
Re[6]: Как извлечь адрес функции-члена ??
От: S.T.A.L.I.N  
Дата: 02.12.07 08:27
Оценка: -3
И всё тебе лично ?? Бееедненький.

Иди психиатру расскажи. Больше не пости тут.

Я общаюсь с теми, чья критика конструктивна, а указания полезны.
Re[6]: Как извлечь адрес функции-члена ??
От: S.T.A.L.I.N  
Дата: 02.12.07 08:38
Оценка:
Спасибо YuriKobets — нашёл всё что нужно.

adontz, пасябо за конкретный ответ и умение держать себя в рамках. Футболки у Вас в блоге чёткие =)

Тема Закрыта.
Re[7]: Как извлечь адрес функции-члена ??
От: McQwerty Россия  
Дата: 03.12.07 15:48
Оценка: 2 (1)
Вот здесь
Автор: McQwerty
Дата: 10.10.07
давался рецепт велосипеда.
Re: Как извлечь адрес функции-члена ??
От: Аноним  
Дата: 04.12.07 12:04
Оценка:
Здравствуйте, S.T.A.L.I.N, Вы писали:

STA>Здравствуйте.


STA>Я пишу свой враппер для ВИНАПИ.

STA>Вот какая проблема возникла у меня с классом окна:
Еще один "велосипед"... А зачем? Вам мало MFC, ATL и WTL?
Лучше почитайте книгу Страуструпа и особенно внимательно про ключевое слово static.
Re: Как извлечь адрес функции-члена ??
От: shurik.  
Дата: 04.12.07 12:22
Оценка: 3 (1)
Здравствуйте, S.T.A.L.I.N, Вы писали:

STA>Здравствуйте.


господа, а чё все такие умные?
тяжело сказать "посмотри в сторону static"?

нет, нужно ещё жизни поучить

или больше не знаете способов своё самомнение повысить?
надоели такие вопросы — проигнорируйте и всё, вас никто отвечать не заставляет
Re[2]: Как извлечь адрес функции-члена ??
От: adontz Грузия http://adontz.wordpress.com/
Дата: 04.12.07 17:00
Оценка: +1
Здравствуйте, shurik., Вы писали:

S>господа, а чё все такие умные?

S>тяжело сказать "посмотри в сторону static"?
S>нет, нужно ещё жизни поучить
S>или больше не знаете способов своё самомнение повысить?
S>надоели такие вопросы — проигнорируйте и всё, вас никто отвечать не заставляет

Вариант со static ответом на вопрос не является, так как доступа к членам экземпляра класса нет. Советую сперва самому прочесть и понять вопрос, а потом уже критиковать чужие ответы.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Как извлечь адрес функции-члена ??
От: shurik.  
Дата: 04.12.07 19:31
Оценка: +1
Здравствуйте, adontz, Вы писали:

A>Вариант со static ответом на вопрос не является, так как доступа к членам экземпляра класса нет. Советую сперва самому прочесть и понять вопрос, а потом уже критиковать чужие ответы.


я не сказал что вариант со static это исчерпывающий ответ на вопрос, я написал "посмотреть в сторону static". типа здесь это ключевое слово с чего начать разбираться. Иль я не прав?

а вобще я хотел сказать что rsdn всё таки лицо ссср-овских программистов (о как 8)) и ТАКОЕ кол-во сообщений типа "да как вы достали" просто позорище
Re[4]: Как извлечь адрес функции-члена ??
От: adontz Грузия http://adontz.wordpress.com/
Дата: 04.12.07 19:39
Оценка:
Здравствуйте, shurik., Вы писали:

S>я не сказал что вариант со static это исчерпывающий ответ на вопрос, я написал "посмотреть в сторону static". типа здесь это ключевое слово с чего начать разбираться. Иль я не прав?

S>а вобще я хотел сказать что rsdn всё таки лицо ссср-овских программистов (о как 8)) и ТАКОЕ кол-во сообщений типа "да как вы достали" просто позорище

Во-первых, static это далеко не единственный вариант. Во-вторых, лично я не писал "как вы меня достали", так что мной обсуждать как же плохо то что я не говорил занятие мало осмысленное.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[8]: Как извлечь адрес функции-члена ??
От: S.T.A.L.I.N  
Дата: 05.12.07 07:41
Оценка:
Здравствуйте, McQwerty, спасибо Вам.

Мужчины, харош маяться дурью.

Шурик ПРАВ, но тов. Adontz тут совершенно НЕПРИЧЁМ: у него настроение культурное.
Так что хватит ОФФТОПА.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.