不知道一个项目中能不能只定义几个文件里的代码有_UNICODE宏,其余的代码里不定义这个呢?

解决方案 »

  1.   

    _UNICODE宏本来就是用来控制代码的,但是对于MFC以及编译器自动生成的代码,它们的宏受编译器属性控制...
      

  2.   

    可以,只要你明白_UNICODE是干嘛的就成,定义这个宏的时候每个函数定义两个版本就行
      

  3.   

    你想怎么用,这些宏定义下来,工程就是unicode工程,否则是ansi工程,至于代码内部,根本就没有任何限制,可以任意混用。
      

  4.   


    我就是想问关于MFC的,因为对于一些MFC函数他会跟据是否定义了_UNICODE宏来决定用哪个版本的函数,我一个项目里有几个源文件,我想在一些文件里MFC的函数会自动选择定义了_UNICODE的版本,另一些会选择不定义_UNICODE的版本,不知道这个_UNICODE定义在哪可以实现这个功能?
      

  5.   

    如果与MFC Form class有关,将很难行得通,如果只是数据处理类,显然没有问题(通常都应是用兼容版本编程,强制编码函数...在数据处理过程中,选择使用不同的编码以便接口)一个程序,使用MFC框架,似乎只能使用一种编码版本:这里面涉及的问题很多,不仅关联代码编译,同时也涉及到资源处理等
      

  6.   

    在你不想用_UNICODE宏的地方,用原始数据类型就行了.比如TCHAR 就变成 你想要的 char 或者  wchar_tMessageBox就换成 MessageBoxA 或者 MessageBoxW.即所用调用都用确定的类型,而不是用可变类型.