#include "pch.h"
#include "util.h"
#include <stdlib.h>
wchar_t* str2wstr(
const char* str,
int* newlen) {
size_t len = strlen(str);
return str2wstr_len(str, len, newlen);
}
wchar_t* str2wstr_len(
const char* str,
size_t len,
int* newlen) {
wchar_t* wstr = (
wchar_t*)calloc(len +
1,
sizeof(
wchar_t));
int wlen = MultiByteToWideChar(
CP_UTF8,
0,
str,
len,
wstr,
len +
1
);
if (newlen) {
*newlen = wlen;
}
wstr[wlen] =
0;
return wstr;
}
char* wchar2utf8(
const wchar_t* wstr,
size_t wlen) {
size_t maxlen = wlen *
4;
char* ret = (
char*)malloc(maxlen +
1);
int ret_len = WideCharToMultiByte(
CP_UTF8,
0,
wstr,
wlen,
ret,
maxlen,
NULL,
NULL);
ret[ret_len] =
0;
return ret;
}