如何将MFC程序改为UNICODE类型
2009-12-02 13:24
295 查看
如何将MFC程序改为UNICODE类型
1. 在Project->C/C++->Preprocessor definitions 中去除_MBCS, 增加_UNICODE2. 在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
相关文章推荐
- 如何将MFC程序改为UNICODE类型
- 如何将MFC程序改为UNICODE类型
- MFC中由UNICODE改为多字节,程序界面老版本MFC的解决办法
- 如何在MFC程序中使用Open Inventor
- Windows/MFC_ 如何判断CString类型是否为空
- MFC中CFileDialog的用法 如何设置文件类型
- 如何减小MFC程序的体积,CWinApp和CWinAppEx
- MFC Unicode类型函数转化
- 关于win32程序如何使用mfcdll的问题.
- 如何在wince6.0 模拟器上跑以前编译好的EVC MFC程序
- 如何在wince6.0 模拟器上跑以前编译好的EVC MFC程序
- 【MFC】如何在mfc窗口程序中调用控制台
- MFC 程序如何使用 printf 输出调试信息
- 如何使得WIN7下用VS2010做出的MFC程序具有XP风格(摆脱传统界面的效果)
- MFC 基于对话框 程序,如何添加状态栏
- 如何使MFC程序支持OLE控件
- MFC程序如何运行在没有安装vs2010的电脑上
- 如何检测非MFC程序的内存泄露?
- 如何在MFC中使你的程序具有xp/win7风格(三)
- VS2010 MFC对话框程序如何在windows桌面用GDI绘图,并用裁剪区限制绘图区