Hi there,

I just solved (after searching online) a tricky problem with the concept mentioned in the thread title.

I had this line in a window procedure (which I found out later was declared as static):

Code:
switch (wmId)
{
case IDM_ABOUT:
    DialogBoxW(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, DemoApp::About);
    break;
}
The DemoApp::About parameter kept on throwing errors. The compiler stated that it could not be used as a type DLGPROC. When I declared the function as static in the class declaration header file it was fine.

I'm wondering why this is the case? Thanks