Вы используете WideCharToMultiByte
неправильно. Вам нужно передать ему строковый буфер, чтобы получить преобразованную строку. Использование NULL
и 0
в качестве параметров, как вы сделали, вернет требуемый размер строки результата.
int length = WideCharToMultiByte (CP_ACP, WC_COMPOSITECHECK, wsURL.c_str(), -1, NULL, 0, NULL, NULL);
std::string LogURL(length+1, 0);
int result = WideCharToMultiByte (CP_ACP, WC_COMPOSITECHECK, wsURL.c_str(), -1, &LogURL[0], length+1, NULL, NULL);
Вам следует проверить result
на ненулевое значение, чтобы убедиться, что функция работает правильно.