+ Get program arguments as unicode string under Windows

This commit is contained in:
wmayer 2014-04-25 15:28:20 +02:00
parent b7ff37e53d
commit 321063bb9c

View File

@ -204,6 +204,25 @@ int main( int argc, char ** argv )
_putenv("PYTHONPATH=");
#endif
#if defined (FC_OS_WIN32)
int argc_ = argc;
QVector<QByteArray> data;
QVector<char *> argv_;
// get the command line arguments as unicode string
{
QCoreApplication app(argc, argv);
QStringList args = app.arguments();
args.pop_front(); // remove 1st argument
argv_.push_back(argv[0]);
for (QStringList::iterator it = args.begin(); it != args.end(); ++it) {
data.push_back(it->toUtf8());
argv_.push_back(data.back().data());
}
argv_.push_back(0); // 0-terminated string
}
#endif
// Name and Version of the Application
App::Application::Config()["ExeName"] = "FreeCAD";
App::Application::Config()["ExeVendor"] = "FreeCAD";
@ -226,7 +245,11 @@ int main( int argc, char ** argv )
App::Application::Config()["RunMode"] = "Gui";
// Inits the Application
App::Application::init(argc,argv);
#if defined (FC_OS_WIN32)
App::Application::init(argc_, argv_.data());
#else
App::Application::init(argc, argv);
#endif
#if defined(_MSC_VER)
// create a dump file when the application crashes
std::string dmpfile = App::Application::getUserAppDataDir();