一定要把方法声明成为静态方法,这样才能取到函数的地址。
例如:
这样什么回调函数:
static INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
在用的时候需要取地址:
this->hWnd=CreateDialog(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), NULL, &FormatDlg::About);
我所理解的需要静态方法的原因:只有静态方法才能在编译时候取到固定的函数地址,如果是动态的是在运行时产生地址不固定,所以一定要用静态方法。
本文解释了为什么在某些情况下需要将方法声明为静态方法来获取函数的固定地址。特别是对于回调函数,在创建对话框等场景中,静态方法因其在编译期间就能确定的地址而被使用。
1万+

被折叠的 条评论
为什么被折叠?



