diff options
Diffstat (limited to 'desktop/source/minidump/minidump_upload.cxx')
-rw-r--r-- | desktop/source/minidump/minidump_upload.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/desktop/source/minidump/minidump_upload.cxx b/desktop/source/minidump/minidump_upload.cxx index 15af26430764..0434fda68445 100644 --- a/desktop/source/minidump/minidump_upload.cxx +++ b/desktop/source/minidump/minidump_upload.cxx @@ -12,7 +12,14 @@ #include <iostream> #include <string> +#ifdef _WIN32 +#include <memory> +#include <windows.h> + +int wmain(int argc, wchar_t** argv) +#else int main(int argc, char** argv) +#endif { if (argc < 2) { @@ -20,7 +27,15 @@ int main(int argc, char** argv) return EXIT_FAILURE; } +#ifdef _WIN32 + const int nBytes = WideCharToMultiByte(CP_UTF8, 0, argv[1], -1, nullptr, 0, nullptr, nullptr); + auto buf = std::make_unique<char[]>(nBytes); + if (WideCharToMultiByte(CP_UTF8, 0, argv[1], -1, buf.get(), nBytes, nullptr, nullptr) == 0) + return EXIT_FAILURE; + std::string iniPath(buf.get()); +#else std::string iniPath(argv[1]); +#endif std::string response; if (!crashreport::readConfig(iniPath, &response)) return EXIT_FAILURE; |