VCKBase

    技术2022-05-11  78

    读了 韩耀旭 的VC++的Unicode编程,试了下在VC2005中设置非Unicode环境编译程序,这

    里简单记录一下。

            在VC6下面,默认的编译环境是Ansi,不是Unicode。VC6下面也支持Unicode编程,毕竟系

    统API函数都是以T类型作为参数和返回值的。具体的VC6下面如何使用Unicode编程,按照原作者

    方式试试。

             在这里,我要说的是在VS2005编译环境下使用非Unicode方式编写和编译程序。VS2005默认

    使用的是Unicode字符集,如果想不使用Unicode字符集而是用Ansi字符集,需要修改两个地方。

           (1)相应编译宏的设定。如果使用Unicode字符集,需要定义预编译宏UNICODE和

    _UNICODE两个;而使用ANSI字符集,不需要这个。具体修改方式为:ALT+F7打开工程选项,选择

    C++栏目,再选择里头的PreProcessor栏目,在里头的PreProcessor defines中去掉默认的

    Unicode和_UNICODE的定义。注意,在此栏目中我们并没有看到对应的两个定义,这个是通过继承

    而来了,只要我们不要勾那个"inherit from parent..."即可。注意,设置完毕之后,另外需要手动将

    _AFXDLL宏定义加入到预处理宏定义中;别忘了加上宏_MBCS。

           (2)到此工作完成一半,此时编译提示link出错,找不到入口函数(实际上入口函数不对)。这

    里需要修改入口函数(其实这个是受原作者启发的)。修改方式:ALT+F7打开工程选项,选择

    Link栏目,然后选择Advanced,第一个属性就是Entry Point,修改为WinMainCRTStartup即

    可。好像Unicode版本是wWinMainCRTStartup 


    最新回复(0)