解释一下下面typedef的用法以及语句最终实现的效果,详细分析一下谢谢
typedefBOOL(WINAPI*pfn_FileIconInit)(BOOLfFullInit);pfn_FileIconInitFileIconInit=(pfn...
typedef BOOL (WINAPI * pfn_FileIconInit) (BOOL fFullInit);
pfn_FileIconInit FileIconInit = (pfn_FileIconInit) GetProcAddress(LoadLibrary("shell32.dll"), (LPCSTR)660);
FileIconInit(TRUE); 展开
pfn_FileIconInit FileIconInit = (pfn_FileIconInit) GetProcAddress(LoadLibrary("shell32.dll"), (LPCSTR)660);
FileIconInit(TRUE); 展开
1个回答
展开全部
WINAPI是宏,表示这个函数类型是windows的api。实际上是,windows的api都以__stdcall的方式调用函数。
(BOOL fFullInit) 表示传入一个BOOL类型的参数。
实际上定义了以WINAPI方式调用函数、仅有一个参数是BOOL类型的函数类型:pfn_FileIconInit
而最终的函数指针 FileIconInit 接受了 来自shell32.dll中 ProcedureNumber号为 660的函数。
实际上,660是不容易直接得到的。GetProcAddress的第二个参数是可以直接填函数名的。
这几句代码是在做加载系统图标列表的准备工作
(BOOL fFullInit) 表示传入一个BOOL类型的参数。
实际上定义了以WINAPI方式调用函数、仅有一个参数是BOOL类型的函数类型:pfn_FileIconInit
而最终的函数指针 FileIconInit 接受了 来自shell32.dll中 ProcedureNumber号为 660的函数。
实际上,660是不容易直接得到的。GetProcAddress的第二个参数是可以直接填函数名的。
这几句代码是在做加载系统图标列表的准备工作
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询