support "u8char" type
This commit is contained in:
@@ -4,20 +4,20 @@
|
|||||||
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
int to_utf16(const CharSet &cs,u16char **dst,const char *src,const int src_size)
|
int to_utf16(const CharSet &cs,u16char **dst,const void *src,const int src_size)
|
||||||
{
|
{
|
||||||
const int src_str_size=(src_size==-1)?strlen(src):src_size;
|
const int src_str_size=(src_size==-1)?strlen((char *)src):src_size;
|
||||||
|
|
||||||
const int len=MultiByteToWideChar(cs.codepage,0,src,src_str_size,0,0);
|
const int len=MultiByteToWideChar(cs.codepage,0,(char *)src,src_str_size,0,0);
|
||||||
|
|
||||||
if(len<=0)return(len);
|
if(len<=0)return(len);
|
||||||
|
|
||||||
*dst=new u16char[len];
|
*dst=new u16char[len];
|
||||||
|
|
||||||
return MultiByteToWideChar(cs.codepage,0,src,src_str_size,*dst,len);
|
return MultiByteToWideChar(cs.codepage,0,(char *)src,src_str_size,*dst,len);
|
||||||
}
|
}
|
||||||
|
|
||||||
int to_utf8(const CharSet &cs,char **dst,const char *src,const int src_size)
|
int to_utf8(const CharSet &cs,u8char **dst,const void *src,const int src_size)
|
||||||
{
|
{
|
||||||
u16char *u16str;
|
u16char *u16str;
|
||||||
int u16size=to_utf16(cs,&u16str,src,src_size);
|
int u16size=to_utf16(cs,&u16str,src,src_size);
|
||||||
@@ -44,7 +44,7 @@ namespace hgl
|
|||||||
return WideCharToMultiByte(cs.codepage,0,src,src_str_size,*dst,len,0,0);
|
return WideCharToMultiByte(cs.codepage,0,src,src_str_size,*dst,len,0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int utf8_to(const CharSet &cs,char **dst,const char *src,const int src_size)
|
int utf8_to(const CharSet &cs,char **dst,const u8char *src,const int src_size)
|
||||||
{
|
{
|
||||||
int u16str_size;
|
int u16str_size;
|
||||||
u16char *u16str=u8_to_u16(src,src_size,u16str_size);
|
u16char *u16str=u8_to_u16(src,src_size,u16str_size);
|
||||||
|
@@ -46,7 +46,7 @@ namespace hgl
|
|||||||
WriteConsoleW(console_handle,L"\n", 1, &result, nullptr);
|
WriteConsoleW(console_handle,L"\n", 1, &result, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Write(const char *str,int size)
|
void Write(const u8char *str,int size)
|
||||||
{
|
{
|
||||||
const int len=u8_to_u16(buf,LOG_BUF_SIZE,str,size);
|
const int len=u8_to_u16(buf,LOG_BUF_SIZE,str,size);
|
||||||
|
|
||||||
|
@@ -33,7 +33,7 @@ namespace hgl
|
|||||||
MessageBoxW(nullptr,str,name,MB_OK);
|
MessageBoxW(nullptr,str,name,MB_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Write(const char *str,int size)
|
void Write(const u8char *str,int size)
|
||||||
{
|
{
|
||||||
const int len=u8_to_u16(buf,4096,str,size);
|
const int len=u8_to_u16(buf,4096,str,size);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user