Обертка 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 я боюсь, что вам придется выделять массив и конвертировать строки в цикле.

Другие вопросы по тегам