Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Cannot find how to link to crypt32.dll
Hello there Qt folks!
I am trying to use the function CryptProtectData defined and wincrypt.h (see http://msdn.microsoft.com/en-us/library/windows/desktop/aa380261(v=vs.85).aspx) and I need to link against crypt32.dll. And... I don't know how to do it.
I've found crypt32.dll at C:\Windows\System32\ but that doesn't really help me solve the problem.
Initially, I asked a question @stackoverflow (http://stackoverflow.com/questions/15614239/undefined-reference-to-imp-cryptprotectdata28) about the error and was told to link against crypt32.dll
I've programmed quite a bit at Linux where the things (seemed to be, at least) quite simpler, using the PKG_CONFIG and let it find the libraries.
Any tips on how to link against crypt32 would be grateful :)
mcosta last edited by
in your .pro file you can add this
@win32:LIBS += -LC:/Windows/System32 -lcrypt32@
Thanks for your answer mcosta, yes, this fixed the problem, but now I am getting more linking problems, like:
@error: undefined reference to
_imp__SetUnhandledExceptionFilter@4' error: undefined reference to_imp__GetProcAddress@8'@
I do not directly use these functions so I guess it has to do with chain dependency issues. Anyway, I searched for the functions GetProcAddress() and SetUnhandledExceptionFilter() and they seem to be at kernel32.dll, which is located at C:\Windows\System32 as well.
@win32:LIBS += -LC:/Windows/System32 -lkernel32 -lcrypt32@
to the .pro file does not seem to solve the problem.
mcosta last edited by
what compiler are you using? What O.S. WindowsX ?
I think this is a problem related to crypt32 dependencies.
I don't know this library but, probably, you must include other DLL's
I am using MinGW under Windows 7.
This is the first time I attempt programming in Windows and that's why I am quite unaware of how you have to link those dlls :/
qxoz last edited by
Hi! I think you already know what i'm saying now, however.
There are 2 ways for linking dlls to app:
- Link with *.h, *.lib. in building step you say compiler where is the lib and how to bind it. And get access to library's functions by *.h file.
- Load dll directly with "QLibrary":http://qt-project.org/doc/qt-4.8/qlibrary.html
qxoz thanks for the suggestion but I find the complexity of the problem to be more than it should. I am trying to use one of the standard (I mean ... it's there) dlls (the wincrypt.h one) along with windows.h.
This is standard stuff, a simple linking rule should clear things out. How did the ones programming in windows used these libraries before?