Zdravíčko, mám drobný problém s použitím smyčky zpráv jako členské metody třídy.
Ta samozřejmě musí být static, je to popsáno zde: http://zezula.net/cz/prog/wndproc_v_tride.html
Kritický kód vypadá asi takhle:
bool game_class::let_set_new_game(){
return DialogBox(NULL, MAKEINTRESOURCE(DLG_SETTINGS), NULL, DLGPROC(setting_procedure));
}
LRESULT CALLBACK game_class::setting_procedure(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
game_class* object = (game_class*)(GetWindowLongPtr(hWnd, DWLP_USER));
switch(message){
case WM_INITDIALOG:
// Nastavení reference na objekt pro dialog:
SetWindowLongPtr(hWnd, DWLP_USER, (LONG_PTR)lParam);
// Potud je to vpořádku - otestováno.
// A nyní k jádru pudla:
object->POKUSNE; // Pokusné je int člen třídy. Tento řádek proběhne vpořádku.
int i = object->pokusne; // !!! ??? Zde však program padá s typickým ...došlo k problému a je třeba aplikaci zavřít.
Jestli někdo tušíte, čím by to mohlo být, prosím napište, budu moc vděčný.