win32程序 设置问题

fvv 2004-04-06 12:06:37
我用vc.net 建立的缺省win32窗口程序 我在项目属性里设置UNICODE方式可以编译成UNICODE程序.如果在CPP里所有头文件前定义#define UNICODE 编译出来的不是UNICODE程序,为什么? 有什么不同?
...全文
52 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fvv 2004-04-06
  • 打赏
  • 举报
回复
看到的阿.如果我定义_UNICODE那 #ifdef _UNICODE就成立.它应该用unicode方式的定义. 也没有什么疑问阿.
薛定谔之死猫 2004-04-06
  • 打赏
  • 举报
回复
系统预定义的在整个编译环境中都可见,你去看看一些头文件,随时可见
#ifdef _UNICODE

#else

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

但是 如果我在属性里设置了UNICODE 然后又在CPP里定义UNICODE 编译的时候说重定义了UNICODE或_UNICODE.不知道怎么回事.是不是算可见?
薛定谔之死猫 2004-04-06
  • 打赏
  • 举报
回复
头文件中也有该宏控制的预编译选项,你的宏它们不一定可见,要用系统预定义宏。
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

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧