Я пишу свой враппер для ВИНАПИ.
Вот какая проблема возникла у меня с классом окна:
/============================================ 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 в КОНСТРУКТОРЕ;
// конструктор
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 ??????????
Здравствуйте, S.T.A.L.I.N, Вы писали:
STA>Как сделать WndProc членом класса wnd и при этом правильно присвоить адрес функции обработки сообщений в wc.lpfnwndproc?
Никак. Смотри как это сделано в STL/MFC/WTL, учись.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, S.T.A.L.I.N, Вы писали:
STA>>Как сделать WndProc членом класса wnd и при этом правильно присвоить адрес функции обработки сообщений в wc.lpfnwndproc?
A>Никак. Смотри как это сделано в STL/MFC/WTL, учись.
я бы сказал грубее RTFM, простите.
а после этого заметил, если пипл не знает элементарных вещей, зачем он лезет в глобальные врапинги?
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, S.T.A.L.I.N, Вы писали:
STA>>Как сделать WndProc членом класса wnd и при этом правильно присвоить адрес функции обработки сообщений в wc.lpfnwndproc?
A>Никак. Смотри как это сделано в STL/MFC/WTL, учись.
Здравствуйте, S.T.A.L.I.N, Вы писали:
STA>RTFM ? Хоть мануал то укажи. Пусть даже и факинг.
Взять любую книжку всеми любимого Страуструпа. Это и мануал и фак и даже то что на буковку F. Там можно найти и о неявном прараметре у членов класса, и о волшебном слове static. А если немного поискать на том же codeproject.com то можно найти кучу враперов и посмотреть как сделано там.
Здравствуйте, S.T.A.L.I.N, Вы писали:
STA>Здравствуйте.
STA>Я пишу свой враппер для ВИНАПИ. STA>Вот какая проблема возникла у меня с классом окна:
Еще один "велосипед"... А зачем? Вам мало MFC, ATL и WTL?
Лучше почитайте книгу Страуструпа и особенно внимательно про ключевое слово static.
Здравствуйте, shurik., Вы писали:
S>господа, а чё все такие умные? S>тяжело сказать "посмотри в сторону static"? S>нет, нужно ещё жизни поучить S>или больше не знаете способов своё самомнение повысить? S>надоели такие вопросы — проигнорируйте и всё, вас никто отвечать не заставляет
Вариант со static ответом на вопрос не является, так как доступа к членам экземпляра класса нет. Советую сперва самому прочесть и понять вопрос, а потом уже критиковать чужие ответы.
Здравствуйте, adontz, Вы писали:
A>Вариант со static ответом на вопрос не является, так как доступа к членам экземпляра класса нет. Советую сперва самому прочесть и понять вопрос, а потом уже критиковать чужие ответы.
я не сказал что вариант со static это исчерпывающий ответ на вопрос, я написал "посмотреть в сторону static". типа здесь это ключевое слово с чего начать разбираться. Иль я не прав?
а вобще я хотел сказать что rsdn всё таки лицо ссср-овских программистов (о как 8)) и ТАКОЕ кол-во сообщений типа "да как вы достали" просто позорище
Здравствуйте, shurik., Вы писали:
S>я не сказал что вариант со static это исчерпывающий ответ на вопрос, я написал "посмотреть в сторону static". типа здесь это ключевое слово с чего начать разбираться. Иль я не прав? S>а вобще я хотел сказать что rsdn всё таки лицо ссср-овских программистов (о как 8)) и ТАКОЕ кол-во сообщений типа "да как вы достали" просто позорище
Во-первых, static это далеко не единственный вариант. Во-вторых, лично я не писал "как вы меня достали", так что мной обсуждать как же плохо то что я не говорил занятие мало осмысленное.