Slightly related, is QCA supported and updated? The last thing you'd want is to use an out of date cryptographic library.
I normally use Crypto++ but libcrypto of OpenSSL is also very good (if you don't mind messing with C)
It is still active, looking at the the git (https://cgit.kde.org/qca.git/) the last commit was in 2017-09-30 (some months ago, but it isn't dead).
I had also been looking at Crypto++, but ended up settleing for QCA for no pacticular reasons. And I wouldn't mess with C, I'm still even just a C++ newbie afterall ;) QCA can also use OpenSSL btw.
I know it is an old topic but I had a similar issue and I think I have a better solution that could be used for deployment (it works at least for Qt 5.9.3) :
copy all your dll in the xll folder (Qt and anything else)
Add the path of your xll in the system PATH (not the user)
Instantiate an object of QCoreApplication
Define a search path for libraries on the xll folder (resolved the "driver not loaded" for sql for example).
I noted that when we open an xll, the working directory is not the xll folder but the user folder defined in excel (like <user>/document). So I guess that dll couldn't load on runtime for this reason.
For finding xll path, I didn't find a way to do it with Qt.
QCoreApplication * g_application = NULL;
HMODULE hm = NULL;
if (!GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
int ret = GetLastError();
fprintf(stderr, "GetModuleHandle returned %d\n", ret);
GetModuleFileNameA(hm, path, sizeof(path));
char ** m_argv;
m_argc = 1;
m_argv = new char*;
m_argv = new char;
m_argv = NULL;
g_application = new QCoreApplication(m_argc, m_argv);
QString filePath = getPath();
QStringList s = filePath.split("\\");
QString path = s.join("\\");
QStringList libraries = QCoreApplication::libraryPaths();
delete  m_argv;
delete  m_argv;
g_application = NULL;
Qt 5.7.0 used "contains" instead of "qtConfig", and it worked fine.
By modifying Qt 5.9.3's zlib_dependency.pri in the same way, the error has been disappeared.
But if you know other better solutions, let me know please.
Hi, because I try all to compile 3d studio, my first kit was mingw and it give me many warning and finally fatal error, after that, I use msvc2015 kit32, same probleme and on forum, I received information the 3d studio source has been release only for msvc2015, and I try that, I got more than 350 warnings but not fatal error and I could compile it, it's not perfect but done
well it says to define _AFXDLL. This can be easily done in your .pro file by adding DEFINES += _AFXDLL
Alternatively most VS project settings result in a simple call parameter on the compiler. The same compiler is used by QtCreator. So you can also set compiler parameters by adding QMAKE_CXXFLAGS += -O1 for example.
The only relation to Qt is that you happen to use the MinGW compiler installed with Qt libraries. However, MinGW is not part of Qt either. It is from a separate open source project.
The problem is obviously that a routine closesocket is referenced (even the line is given in your post) but not found as a compiled module. As with any source you need to find out where it belongs to and why it is not compiled or part of a library you are using.