gpt4 book ai didi

c++ - SSPI 头文件 - fatal error

转载 作者:可可西里 更新时间:2023-11-01 12:45:03 27 4
gpt4 key购买 nike

我的项目出现了一些 fatal error ,错误来自 sspi.h,我必须定义一些东西,但我不知道是什么以及为什么,请有人解释。

sspi.h(60): fatal error C1189: #error :   You must define one of SECURITY_WIN32, SECURITY_KERNEL, or SECURITY_MAC

最佳答案

虽然诊断很清楚必须定义 SECURITY_WIN32SECURITY_KERNELSECURITY_MAC 之一,但它在确定方面没有多大帮助使用哪一个以及为什么。据我所知,这些都没有正式记录在 MSDN 中,因此唯一的信息来源是实际的头文件。

  • SECURITY_MAC:此符号只出现在 中,该文件的版权声明为 1992-1999。据推测,引入此符号是为了支持“经典​​”Mac OS 的编译,当时 MFC 仍计划成为一个针对 Windows 和 Mac 的跨平台框架。该符号今天似乎没有任何实际用途。

  • SECURITY_KERNEL:这里最有启发性的评论来自 ,阅读//Can't use the windows.h def 'ns 处于内核模式。。这似乎表明,当从以内核模式运行的模块访问安全包时,需要定义 SECURITY_KERNEL 符号。

  • SECURITY_WIN32:整个Windows SDK都没有对这个符号进行任何注释。从用户模式应用程序访问安全 API 时应该使用此符号似乎是合理的。

假设以上所有内容都是正确的,可以使用以下准则来确定要定义的符号:

  • 在编译用户模式应用程序时定义SECURITY_WIN32
  • 在编译内核模式模块时定义SECURITY_KERNEL
  • 永远不要定义过时的 SECURITY_MAC 预处理器符号。

关于c++ - SSPI 头文件 - fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11561475/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com