1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
/**********************************************************************
Audacity: A Digital Audio Editor
@file CommandLineArgs.cpp
Paul Licameli
**********************************************************************/
#include "CommandLineArgs.h"
int CommandLineArgs::argc;
const char *const *CommandLineArgs::argv;
#ifdef _WIN32
#include <windows.h>
#include <locale>
#include <codecvt>
namespace CommandLineArgs {
MSWParser::MSWParser()
{
wideArgv = ::CommandLineToArgvW(::GetCommandLineW(), &argc);
for (size_t ii = 0; ii < argc; ++ii)
{
auto begin = wideArgv[ii];
auto end = begin + wcslen(begin);
narrowArgv.emplace_back(
std::wstring_convert<std::codecvt_utf8<wchar_t>>().to_bytes(
begin, end));
}
for (const auto& arg : narrowArgv)
argv.push_back(arg.c_str());
argv.push_back(nullptr);
}
MSWParser::~MSWParser()
{
if (wideArgv)
::LocalFree(wideArgv);
}
} // namespace CommandLineArgs
#endif
|