acococ 发表于 2016-12-14 12:13:56

API函数参数前面的宏到底是干嘛的

拿下面API函数为例:
GetModuleFileNameW(
    _In_opt_ HMODULE hModule,
    _Out_writes_to_(nSize, ((return < nSize) ? (return + 1) : nSize)) LPWSTR lpFilename,
    _In_ DWORD nSize
    );
参数1的_In_opt_宏定义:#define _In_opt_                        _SAL2_Source_(_In_opt_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre_valid_impl_ _Deref_pre_readonly_)
#define _SAL2_Source_(Name, args, annotes) _SA_annotes3(SAL_name, #Name, "", "2") _Group_(annotes _SAL_nop_impl_)


首先 我一直认为 类型 变量名 类型里面一般就加个修饰符 比如const常量定义之类的
看这个定义 也就是说 类型 变量名前面还能加这么多东西?
问题是 HMODULE hModule参数前面需要加这么一长串是做什么的呢?


无符号整形 发表于 2016-12-14 17:14:03

别管他,比如_In_opt_表示只能输入,可选的参数.
一般都是一些说明符号啦之类的
页: [1]
查看完整版本: API函数参数前面的宏到底是干嘛的