typedef int(WINAPI* PFNMESSAGEBOX)(HWND,LPCSTR,LPCSTR,UINT uType);这是一个什么玩艺?

2025-05-21 16:38:45
推荐回答(3个)
回答(1):

申明了一个函数指针,(HWND,LPCSTR,LPCSTR,UINT uType)是参数类型,前面部分是返回类型,PFNMESSAGEBOX是类型符号
可以这样使用:

PFNMESSAGEBOX pMsgBox=MyMessageBox;
pMsgBox(hWnd,"asdf","asdf",0);就相当与执行MyMessageBox(hWnd,"asdf","asdf",0);
指向的函数返回类型和参数相同
int WINAPI MyMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
{
return 0;
}

回答(2):

typedef 是类型重定义的关键词

typedef int(WINAPI* PFNMESSAGEBOX ....
表示定义一个函数指针类型

回答(3):

声名函数指针
定义 PFNMESSAGEBOX是一个函数指针,指向
返回 int,类型是WINAPI,参数4个,HWND,LPCSTR,LPCSTR,UINT

用处就是指向函数地址...

可以详细百度一下函数指针..