Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi CryptAcquireContext--未解析的外部_Winapi_Visual C++_Poco Libraries_Advapi32 - Fatal编程技术网

Winapi CryptAcquireContext--未解析的外部

Winapi CryptAcquireContext--未解析的外部,winapi,visual-c++,poco-libraries,advapi32,Winapi,Visual C++,Poco Libraries,Advapi32,我正在链接第三方库(Poco C++),并从链接器中获取以下未解决的符号错误。它似乎无法找到“CryptAcquireContextW”、“CryptReleaseContext”和“CryptGenRandom” 根据,这些函数可以使用“Advapi32.lib”链接。我已将其添加到链接器输入中,但符号仍然无法解析 1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol _

我正在链接第三方库(Poco C++),并从链接器中获取以下未解决的符号错误。它似乎无法找到“CryptAcquireContextW”、“CryptReleaseContext”和“CryptGenRandom”

根据,这些函数可以使用“Advapi32.lib”链接。我已将其添加到链接器输入中,但符号仍然无法解析

1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol __imp__CryptAcquireContextW@20 referenced in function "public: virtual int __thiscall Poco::RandomBuf::readFromDevice(char *,__int64)" (?readFromDevice@RandomBuf@Poco@@UAEHPAD_J@Z)

1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol __imp__CryptReleaseContext@8 referenced in function "public: virtual int __thiscall Poco::RandomBuf::readFromDevice(char *,__int64)" (?readFromDevice@RandomBuf@Poco@@UAEHPAD_J@Z)

1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol __imp__CryptGenRandom@12 referenced in function "public: virtual int __thiscall Poco::RandomBuf::readFromDevice(char *,__int64)" (?readFromDevice@RandomBuf@Poco@@UAEHPAD_J@Z)
我已经验证了Advapi32.lib位于搜索路径上,Advapi32.dll位于Windows目录中,因此我不确定此错误是如何继续发生的

有什么想法吗


谢谢

虽然我不能很容易地解释为什么这样做有效,但下面是它的作用

失败的项目在链接器输入的“继承”部分中列出了“Advapi32.lib”,但显然没有实际链接

我将“Advapi32.lib”添加到“AdditionalLibraries”部分,并以某种方式使它被正确地提取和链接


我将把它作为VS 2013在两台PC上的安装方式的一个区别,但它仍然是一个奇怪的奇怪现象。

我刚刚尝试从Visual Studio 2010调用CryptReleaseContext,advapi32.lib是成功链接的必要且充分的工具。也许您应该仔细检查advapi32.lib是否确实在链接器的命令行上指定?(哦,这是正确的比特数。)尝试链接
Crypt32.lib
谢谢,伙计们。我有新消息。我能够使用VS 2013 Professional在我的个人电脑上构建良好的链接器输入行中仅使用Advapi32.lib。但失败的PC使用的是VS2013社区版。Advapi32.lib是否可能仅适用于Pro版本?这没有多大意义,但这是PC之间唯一真正的区别。请尝试安装SDK,并更改项目设置以使用它,而不是Visual Studio随附的版本。我尝试过这样做,但向系统添加SDK路径会导致大量重复符号和标题问题。我可能需要对项目文件进行重大修改,以使其工作正常。幸运的是,这次我不用这么做就溜走了。:-)