Coo*_*ker 8 c++ windows winapi header-files
我的项目出现了一些致命错误,错误来自sspi.h,我必须定义一些东西,但我不是什么,为什么,请有人解释.
sspi.h(60): fatal error C1189: #error : You must define one of SECURITY_WIN32, SECURITY_KERNEL, or SECURITY_MAC
Run Code Online (Sandbox Code Playgroud)
虽然诊断是明确其定义的一个SECURITY_WIN32
,SECURITY_KERNEL
或者SECURITY_MAC
,它并没有多大帮助确定使用哪一个,为什么.据我所知,这些都没有在MSDN中正式记录,因此唯一的信息来源是实际的头文件.
SECURITY_MAC
:此符号仅出现在<sspi.h>中,该文件的版权声明为1992-1999
.据推测,这个符号的引入是为了支持"经典"Mac OS的编译,当MFC仍然计划成为针对Windows和Mac的跨平台框架时.该符号今天似乎没有任何实际用途.
SECURITY_KERNEL
:这里最具启发性的评论来自<NTSecPKG.h>,阅读// Can't use the windows.h def'ns in kernel mode.
.这似乎表明SECURITY_KERNEL
,当从以内核模式运行的模块访问安全包时,需要定义符号.
SECURITY_WIN32
:整个Windows SDK中根本没有对此符号的评论.似乎有道理,从用户模式应用程序访问安全API时应使用此符号.
假设以上所有都是正确的,可以使用以下指南来确定要定义的符号:
SECURITY_WIN32
在编译用户模式应用程序时定义.SECURITY_KERNEL
在编译内核模式模块时定义.SECURITY_MAC
预处理器符号.只需添加
#define SECURITY_WIN32
Run Code Online (Sandbox Code Playgroud)
在所有包括
归档时间: |
|
查看次数: |
4766 次 |
最近记录: |