2019链接错误-c++
2019 link error - c++
我在VS2010中编写了以下代码片段:
#pragma once
#include "stdafx.h"
#ifndef SECURITY_WIN32
#define SECURITY_WIN32
#endif
#include "windows.h"
#include "sspi.h"
int main( void )
{
ULONG cPackages = 0;
PSecPkgInfo pInfo = NULL;
SECURITY_STATUS stat = EnumerateSecurityPackages(&cPackages, &pInfo);
if (stat == SEC_E_OK)
{
for (ULONG i = 0; i < cPackages; i++)
{
wprintf(L"%st%sn",pInfo[i].Name, pInfo[i].Comment);
}
FreeContextBuffer(pInfo);
}
return 0;
}
但是,在编译时,我得到了以下错误:
错误LNK2019:未解析的外部符号_imp_EnumerateSecurityPackagesW@8在函数_main 中引用
和
错误LNK2019:未解析的外部符号_FreeContextBuffer@4在函数_main 中引用
有人能帮我吗?
您需要针对Secur32.lib
进行链接。
转到Project Properties -> Linker -> Input
并在列表中添加Secur32.lib
。
链接错误"未解析的外部符号"通常意味着没有添加所需的库来解析符号。在VC++的情况下,你得到了没有修饰的符号FreeContextBuffer
(这将是错过的函数),转到http://msdn.microsoft.com并搜索该功能的相关文章。在这种情况下,它将生成"FreeContextBuffer"作为第一个结果。然后,您可以查找最后一节"需求",并找出编译器和链接器-Secur32.lib的库(您的情况)需要什么标头。然后,在IDE的属性->linker->Input中添加此库。或者使用代码中的#pragma comment()
指令。希望这会有所帮助。
#include "stdafx.h"
是为了包含"系统"接口,很可能windows.h已经包含了。因此,在任何其他include之前,请尝试将#define移动到stdafx.h中。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 错误:未在此范围内声明'reverse'