Wed, 30 Oct 2024 11:07:52 +0100
implement windows condvar
#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; }