对"_imp__CryptUnprotectData@28"的未定义引用,包括 Crypt32.Lib && wincrypt.h
undefined reference to `_imp__CryptUnprotectData@28' with Crypt32.Lib && wincrypt.h included
我的一个项目有问题。
我使用QtCreator与MinGW和Qt 5.4.0
当我尝试编译时,这行简单的代码给了我一些错误:
CryptUnprotectData(data.password, NULL, NULL, NULL, NULL, (DWORD) 0, data.uncryptedPassword);
(with DATA_BLOB* data.)DATA_BLOB* data。uncryptedPassword)
get me:
undefined reference to `_imp__CryptUnprotectData@28'
如标题所述,我包括了Crypt32。Lib文件在my .pro:
QT += core gui
QT += sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = ChromePass
LIBS += -L$$PWD/ -lCrypt32
TEMPLATE = app
SOURCES += main.cpp
mainwindow.cpp
chromehandler.cpp
passdata.cpp
HEADERS += mainwindow.h
chromehandler.h
passdata.h
FORMS += mainwindow.ui
并且按照MSDN api的指示,包括wincrypt.h:
#include <windows.h>
#include <wincrypt.h>
#include <cstdlib>
#include <fstream>
错误仍然存在,我检查了wincrypt.h
以确保定义了CryptUnprotectData
,它是:
WINIMPM WINBOOL WINAPI CryptUnprotectData(DATA_BLOB *pDataIn,LPWSTR *ppszDataDescr,DATA_BLOB *pOptionalEntropy,PVOID pvReserved,CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct,DWORD dwFlags,DATA_BLOB *pDataOut);
我一整天都在努力……有人知道吗?
非常感谢!
线索是crypt32
库不是用mingw构建的,这就是为什么你得到链接错误。
Win32 Crypto API中缺少一些函数
Qt论坛上关于这个问题的讨论可以在这里找到:
https://forum.qt.io/topic/25527/cannot-find-how-to-link-to-crypt32-dll相关文章:
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- JSON转换为nlohmann JSON-lib中的结构数组
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 使用 VS2015 在 Windows 10 上构建 Fortran .lib x64 位并将其链接到 C++
- 为什么我的链接器在找到Coin4d.lib后搜索Coin4sd.lib?
- libcpmtd.lib有什么用?
- LNK1104:无法打开libpjproject-i386-Win32-vc14-Debug-Static.lib
- 解析引用 |exe/dll vs lib
- 在 /usr/local/lib 下找不到库
- LLVM 编译:目标的配方 '../lib/IR/Release+Asserts/Intrinsics.gen.tmp' failed
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- VS2015 未链接用户32.lib
- 从 .lib 文件创建一个.dll文件
- 看不到文件'SDL2.lib'
- 如何使用用户定义的函数覆盖 C lib 函数,如 _sbrk?
- 如何在不需要LIBCD.lib的情况下在Visual Studio 6中编译C项目
- 可执行文件C++包括.obj,.lib和.dll吗?
- 我应该安装 .cmake 文件来共享/cmake 还是 lib/cmake?
- 无法在 DLL 中链接 SDL2-static.lib
- 对"_imp__CryptUnprotectData@28"的未定义引用,包括 Crypt32.Lib && wincrypt.h