Оболочка main () для запуска программы wmain () для компиляции из командной строки - PullRequest
0 голосов
/ 21 сентября 2018

Например, у меня есть программа, которая "main" функция определяется как 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 Ответ

0 голосов
/ 21 сентября 2018

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

...