Created by
VadimD
| class StringConv {
public:
char* cbuf = NULL;
size_t cbuf_size = 0;
WCHAR* wbuf = NULL;
size_t wbuf_size = 0;
StringConv() {
//
}
LPCWSTR wget(size_t size) {
if (wbuf_size < size) {
if (wbuf != NULL) delete wbuf;
wbuf = new WCHAR[size];
wbuf_size = size;
}
return wbuf;
}
LPCWSTR proc(char* src, int cp = CP_UTF8) {
size_t size = MultiByteToWideChar(cp, 0, src, -1, NULL, 0);
LPCWSTR buf = wget(size);
MultiByteToWideChar(cp, 0, src, -1, wbuf, size);
return wbuf;
}
char* get(size_t size) {
if (cbuf_size < size) {
if (cbuf != NULL) delete cbuf;
cbuf = new char[size];
cbuf_size = size;
}
return cbuf;
}
char* proc(LPCWSTR src, int cp = CP_UTF8) {
size_t size = WideCharToMultiByte(cp, 0, src, -1, NULL, 0, NULL, NULL);
char* buf = get(size);
WideCharToMultiByte(cp, 0, src, -1, buf, size, NULL, NULL);
return buf;
}
}
|