2 #include <msp/stringcodec/utf16.h>
3 #include <msp/stringcodec/utf8.h>
4 #include "application.h"
9 int main(int argc, char **argv)
11 return Msp::Application::run(argc, argv);
14 int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int /*nCmdShow*/)
17 LPWSTR *argv_w = CommandLineToArgvW(GetCommandLineW(), &argc);
19 unsigned max_size = 0;
20 for(int i=0; i<argc; ++i)
21 max_size += wcslen(argv_w[i])*4+1;
23 char *argv_buf = new char[max_size+(argc+1)*sizeof(char *)];
24 char **argv = reinterpret_cast<char **>(argv_buf);
25 char *argv_ptr = argv_buf+(argc+1)*sizeof(char *);
26 for(int i=0; i<argc; ++i)
29 string arg(reinterpret_cast<char *>(argv_w[i]), wcslen(argv_w[i])*2);
30 arg = StringCodec::transcode<StringCodec::Utf16Le, StringCodec::Utf8>(arg);
31 copy(arg.begin(), arg.end(), argv_ptr);
32 argv_ptr += arg.size();
37 int exit_code = Msp::Application::run(argc, argv, hInstance);