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 :)



  • Hi,

    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.

    Unfortunately, adding
    @win32:LIBS += -LC:/Windows/System32 -lkernel32 -lcrypt32@
    to the .pro file does not seem to solve the problem.

    Any suggestions?



  • Hi,

    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 :/



  • Hi! I think you already know what i'm saying now, however.
    There are 2 ways for linking dlls to app:

    1. 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.
    2. 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?


Log in to reply