在win32控制台中的宽字符(L)转换解决思路
在win32控制台中的宽字符(L)转换
我想win32控制台下面做一个发中文声音的语音程序,程序是这样的,用户输入字符,我接收,然后程序再朗诵出来
但有一个难点:
hr = pVoice->Speak(L"hello", 0, NULL);(这个是网上抄的)
这里怎么才可以把"hellow"定义为一个变量接紧在L的后面,也接是我接收用户的那个变量。
例:
const wchar_t * m_strTxt=L"a" ;
//* m_strTxt=L"aa";
//ms_strTxt[]="dsffd"
hr=pVoice->Speak( m_strTxt, 0, NULL);
这样是可以,但m_strTxt内容是固定的,我要怎么才可以把接收的字符插进去类
------解决方案--------------------
VC中的字符串常量默认是多字节编码,在中文系统下也就是GB编码,加了L则表示采用UTF-16编码。对于多字节的字符串变量,一般采用char * 或char[]表示,对于UTF-16编码,则采用wchar_t * 或wchar_t[]表示,和加L是两码事
我想win32控制台下面做一个发中文声音的语音程序,程序是这样的,用户输入字符,我接收,然后程序再朗诵出来
但有一个难点:
hr = pVoice->Speak(L"hello", 0, NULL);(这个是网上抄的)
这里怎么才可以把"hellow"定义为一个变量接紧在L的后面,也接是我接收用户的那个变量。
例:
const wchar_t * m_strTxt=L"a" ;
//* m_strTxt=L"aa";
//ms_strTxt[]="dsffd"
hr=pVoice->Speak( m_strTxt, 0, NULL);
这样是可以,但m_strTxt内容是固定的,我要怎么才可以把接收的字符插进去类
------解决方案--------------------
VC中的字符串常量默认是多字节编码,在中文系统下也就是GB编码,加了L则表示采用UTF-16编码。对于多字节的字符串变量,一般采用char * 或char[]表示,对于UTF-16编码,则采用wchar_t * 或wchar_t[]表示,和加L是两码事