win32程序 设置问题

fvv 2004-04-06 12:06:37
我用vc.net 建立的缺省win32窗口程序 我在项目属性里设置UNICODE方式可以编译成UNICODE程序.如果在CPP里所有头文件前定义#define UNICODE 编译出来的不是UNICODE程序,为什么? 有什么不同?
...全文
26 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fvv 2004-04-06
看到的阿.如果我定义_UNICODE那 #ifdef _UNICODE就成立.它应该用unicode方式的定义. 也没有什么疑问阿.
  • 打赏
  • 举报
回复
系统预定义的在整个编译环境中都可见,你去看看一些头文件,随时可见
#ifdef _UNICODE

#else

#endif
的条件编译语句。
  • 打赏
  • 举报
回复
fvv 2004-04-06
你知道是具体什么预编译选项吗?

但是 如果我在属性里设置了UNICODE 然后又在CPP里定义UNICODE 编译的时候说重定义了UNICODE或_UNICODE.不知道怎么回事.是不是算可见?
  • 打赏
  • 举报
回复
头文件中也有该宏控制的预编译选项,你的宏它们不一定可见,要用系统预定义宏。
  • 打赏
  • 举报
回复
fvv 2004-04-06
加入 /entry:"wWinMainCRTStartup" 编译时说 忽略未知选项'/entry:' 纳闷了. 没有写错啊
  • 打赏
  • 举报
回复
fvv 2004-04-06
研究成功 感谢zhangcrony
  • 打赏
  • 举报
回复
zhangcrony 2004-04-06
NT系统(WINNT/WIN2000/WINXP/WIN2003)的内核是unicode代码,通常vc创建的工程默认都是ansi代码(可以兼容win9x),在nt下ansi程式在调用windows API的时系统实际又进行了一次ansi到unicode的代码转化,如MoveWindowA实际上又调用MoveWindowW.如果以我们的程序不考虑win9x(早晚是明日黄花)的话,直接用unicode编译,那么程式的代码执行效率一定能增色不少.具体:
(0).在vc编译选项上,在vc7.0以上在工程的属性页中的“字符集”选上"使用 Unicode 字符集"即可,在vc6.0下可能麻烦一点,得先把vc运行库的unicode版本复制到vc路径下,一般都是和xxx.lib的ansi对应xxxU.lib,默认装vc时是不会装的,将工程属性
(0).1.改语言定义:
在project settings的"C++"页中的"preprocessor definitions"中改_MBCS为_UNICODE
(0).2.改入口函数:
在"link"页中的"project Options"加入/entry:"wWinMainCRTStartup"
即可.
  • 打赏
  • 举报
回复
fvv 2004-04-06
up
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2004-04-06 12:06
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……