diff --git a/dist/windows/installer.nsi b/dist/windows/installer.nsi index 75f2a0f95..95d002a6c 100644 --- a/dist/windows/installer.nsi +++ b/dist/windows/installer.nsi @@ -35,6 +35,8 @@ Section $(inst_qbt_req) ;"qBittorrent (required)" SetOutPath "$INSTDIR\translations" ; Put files there File /r "translations\qt*.qm" + ; Restore output path because it affects `CreateShortCut`. It affects the "Start in" field. + SetOutPath $INSTDIR ; Write the installation path into the registry WriteRegStr HKLM "Software\qBittorrent" "InstallLocation" "$INSTDIR" diff --git a/src/app/main.cpp b/src/app/main.cpp index 69d91f739..bbb293479 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -118,6 +118,17 @@ int main(int argc, char *argv[]) // Create Application auto app = std::make_unique(argc, argv); +#ifdef Q_OS_WIN + // QCoreApplication::applicationDirPath() needs an Application object instantiated first + // Let's hope that there won't be a crash before this line + const char *envName = "_NT_SYMBOL_PATH"; + const QString envValue = qEnvironmentVariable(envName); + if (envValue.isEmpty()) + qputenv(envName, Application::applicationDirPath().toLocal8Bit()); + else + qputenv(envName, u"%1;%2"_qs.arg(envValue, Application::applicationDirPath()).toLocal8Bit()); +#endif + const QBtCommandLineParameters params = app->commandLineArgs(); if (!params.unknownParameter.isEmpty()) {