我正在实现一些低级别的东西,需要“typedef”许多系统(Windows)功能。例如,这是一个测试函数,我想为钩子输入typedef:
BOOL WINAPI WindowsFunction(Param1: DWORD, Param2:DWORD, Param3:DWORD);
Typedef应为:
typedef BOOL (WINAPI *TWindowsFunction)(Param1: DWORD, Param2:DWORD, Param3:DWORD);
对于一些函数来说这是可以的,但如果我想对上面的几十个函数进行上述操作,是否有一个快捷方式(比如“魔术#define”)可以避免复制几乎所有的函数声明。再次?像“神奇”一样:
#define TYPEDEF_FUNCTION(WindowsFunction....)
谢谢!
答案 0 :(得分:7)
C ++ 11&#39} decltype
can be used this way,typedef
或using
:
typedef decltype(&WindowsFunction) TWindowsFunction;
或:
using TWindowsFunction = decltype(&WindowsFunction);