简单说明VS2003 UNICODE字符的使用方法

以下就是我总结的简单的实例. 此时VS2003 UNICODE字符用的参数类型为wchar_t* 类型, MFC应用程序调用此VS2003 UNICODE字符后编译同过, 但不能连接.所以要相上用上面提到的解决方案了。

在此简单说明一下设置使用VS2003 UNICODE字符集的方法:

选择项目属性的"C/C++"=>"预处理器"右边的"预处理器定义"中添加_UNICODE;UNICODE;如果是MFC项目,在项目属性的"连接器"=>"高级"中的"入口点"处加上wWinMainCRTStartup

以上操作后项目就使用UNICODE字符集.此时TCHAR不是原来的char类型,而是wchar_t类型,LPCTSTR也是wchar_t*类型了.(更多有关UNICODE编程问题可以查看http://www.vckbase.com/document/viewdoc/?id=642)

回到原文.在MSDN中的LNK2019错误信息的说明后,发现MFC项目默认设置了/Zc:wchar_t编译选项.但Console项目中默认是不设置此项的.解决方案:在项目属性"C/C++"=>"语言"中的"将wchar_t视为内置类型"上选择"否".之后编译连接OK.

在此给出实例代码:

DLL中的导出函数声名     


int __declspec(dllexport) FindFile( LPCTSTR lpFileName );     


在MFC项目中要用到以上DLL中声名的函数.(MFC项目已设置为UNICODE)     


FindFile( _T( "FileName" ) );    

工作需要做了一个使用UNICODE字符集的DLL库.应用程序用MFC库,也使用了UNICODE字符集.但在编译连接的时候总是发生LNK2019的错误.但在Console项目中是没有此错误的.重新检查了所有项目的属性,是否正确设置为使用UNICODE字符集

有四种VS2003 UNICODE字符标准化表单。最重要的是标准化表单 C,因为它是用于万维网的字符模型的最常用表单。Macromedia 提供其他三种 Unicode 标准化表单作为补充。
在 Unicode 中,有些字符看上去很相似,但可用不同的方法存储在文档中。

例如,“”(e 变音符)可表示为单个字符“e 变音符”,或两个字符“正常拉丁语 e”+“组合变音符”。Unicode 组合字符是与前一个字符结合使用的字符,因此变音符会显示在“拉丁语 e”的上方。这两种形式都显示为相同的印刷样式,但保存在文件中的每种形式是不同的。

相关推荐