Обертка main() для запуска программы wmain() для компиляции из командной строки
Например, у меня есть программа, которая "основная" функция определяется как wmain.
int wmain( int argc, wchar_t *argv[] ) {
wchar_t* lpModulePath = NULL;
wchar_t* lpFunctionName = NULL;
lpModulePath = argv[1];
lpFunctionName = argv[2];
}
и, конечно, использует типы wchar_t. Как я могу написать функцию
int main( int argc, char *argv[] )
что преобразует параметры, передаваемые как char, в wchar_t, а затем вызывает wmain самостоятельно?
Спасибо
1 ответ
Решение
На Windows вы можете использовать GetCommandLineW()
а также CommandLineToArgvW()
:
int main(int argc, char* argv[])
{
wchar_t** wargv = CommandLineToArgvW(GetCommandLineW(), &argc);
int ret = wmain(argc, wargv);
LocalFree(wargv);
return ret;
}
В Linux я боюсь, что вам придется выделять массив и конвертировать строки в цикле.