如何将MFC程序改为UNICODE类型
答案:2 悬赏:50
解决时间 2021-12-22 01:00
- 提问者网友:巴黎塔下许过得承诺
- 2021-12-21 03:54
如何将MFC程序改为UNICODE类型
最佳答案
- 二级知识专家网友:承载所有颓废
- 2021-12-21 04:48
2. 在Project-Link-Category-Output-Entry-point symbol处增加wWinMainCRTStartup
3. 拷贝3个文件到工程所在目录:mfc42u.lib, mfcs42u.lib, atlthunk.lib (WINDDK中就有,或者直接指定这三个文件的路径, 否则会link失败)4.
数据类型 说明a) WCHARUnicode字符b) PWSTR 指向Unicode字符串的指针
c) PCWSTR 指向一个恒定的Unicode字符串的指针
d) 对应的ANSI数据类型为CHAR,LPSTR和LPCSTR
e) ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR
5. 操作说明
a) ANSI 操作函数以str开头 strcpy
b) Unicode 操作函数以wcs开头 wcscpy
c) MBCS 操作函数以_mbs开头 _mbscpy
d) ANSI/Unicode 操作函数以_tcs开头 _tcscpy(C运行期库),如_tcscpy,_tcscat, _tcscmp, _tcschr (查找字串),
e) ANSI/Unicode 操作函数以lstr开头 lstrcpy(Windows函数)
6. 字符集说明
3. 拷贝3个文件到工程所在目录:mfc42u.lib, mfcs42u.lib, atlthunk.lib (WINDDK中就有,或者直接指定这三个文件的路径, 否则会link失败)4.
数据类型 说明a) WCHARUnicode字符b) PWSTR 指向Unicode字符串的指针
c) PCWSTR 指向一个恒定的Unicode字符串的指针
d) 对应的ANSI数据类型为CHAR,LPSTR和LPCSTR
e) ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR
5. 操作说明
a) ANSI 操作函数以str开头 strcpy
b) Unicode 操作函数以wcs开头 wcscpy
c) MBCS 操作函数以_mbs开头 _mbscpy
d) ANSI/Unicode 操作函数以_tcs开头 _tcscpy(C运行期库),如_tcscpy,_tcscat, _tcscmp, _tcschr (查找字串),
e) ANSI/Unicode 操作函数以lstr开头 lstrcpy(Windows函数)
6. 字符集说明
全部回答
- 1楼网友:有钳、任性
- 2021-12-21 06:06
如何将mfc程序改为unicode类型
1. 在project->c/c++->preprocessor definitions 中去除_mbcs, 增加_unicode
2. 在project->link->category->output->entry-point symbol处增加wwinmaincrtstartup
3. 拷贝3个文件到工程所在目录:mfc42u.lib, mfcs42u.lib, atlthunk.lib (winddk中就有,或者直接指定这三个文件的路径, 否则会link失败)
4. 数据类型 说明
a) wchar unicode字符
b) pwstr 指向unicode字符串的指针
c) pcwstr 指向一个恒定的unicode字符串的指针
d) 对应的ansi数据类型为char,lpstr和lpcstr
e) ansi/unicode通用数据类型为tchar,ptstr,lpctstr
5. 操作说明
a) ansi 操作函数以str开头 strcpy
b) unicode 操作函数以wcs开头 wcscpy
c) mbcs 操作函数以_mbs开头 _mbscpy
d) ansi/unicode 操作函数以_tcs开头 _tcscpy(c运行期库),如_tcscpy,_tcscat, _tcscmp, _tcschr (查找字串),
e) ansi/unicode 操作函数以lstr开头 lstrcpy(windows函数)
6. 字符集说明
a) unicode l“string”
b) ansi “string”
c) ansi/unicode t(“string”)
或_text(“string”)if(szerror[0]==_text(‘j’) ){ }
7. unicode 转换成ansi
unsigned short * unicode;
int size= widechartomultibyte(cp_acp,0,unicode,-1, null, 0, null,0);
char * ansi=new char[size];
widechartomultibyte(cp_acp,0,unicode,-1, ansi, null, 0);
8. ansi 转换成unicode
cstring ansi;
dword dwnum;
dwnum = multibytetowidechar(cp_acp, 0, m_ansi, -1, null, 0);
wchar_t *pwtext = new wchar_t[dwnum];;
multibytetowidechar(cp_acp, 0, m_ansi, -1, pwtext, dwnum);
9. 判断如果文本文件的开头两个字节是0xff和0xfe,那幺就是unicode,否则是ansi
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯