問題:VC6.0編程與UNICODE/ANSI?

gx_lqh 2006-07-13 09:57:34
1.怎麽樣做才可以讓程序既可以在UNICODE系統又可以在ANSI系統上運行?因爲用UNICODE方式編譯的代碼不能在Win98上執行;編寫符合ANSI和Unicode的应用程序需要的技術,請對此精通的高手指點一二,不勝感激之情躍然紙上!!
2.TCHAR *szText = _T("我的TEXT");
CString str(szText);
int n = _tcslen(szText) * sizeof(TCHAR);
這段代碼是否自動識別系統是UNICODE還是ANSI?也就是說在Win98上執行,n = 8;
而在Win CE上執行,n = 12 ?
...全文
363 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gx_lqh 2006-07-15
  • 打赏
  • 举报
回复
謝謝各位,也該是結貼的時候啦
龙凤呈祥焱 2006-07-14
  • 打赏
  • 举报
回复
98???MS都不支持了还在上面搞开发?????哎..........
gx_lqh 2006-07-14
  • 打赏
  • 举报
回复
補充一下,我的意思是一種編譯方式(UNICODE or ANSI),可以在以下的系統中執行:
• Windows 2000既支持UNICODE,也支持ANSI,因此可以为任意一种开发应用程序。
• Windows 98只支持ANSI,只能为ANSI开发应用程序。
• Windows CE只支持UNICODE,只能为UNICODE开发应用程序。
gx_lqh 2006-07-14
  • 打赏
  • 举报
回复
謝謝各位!!學到了不少~~
那麽關於編寫符合ANSI和Unicode的应用程序,大家好有什麽好的建議,還望不吝賜教啊!
一剑 2006-07-14
  • 打赏
  • 举报
回复
符号(TCHAR、LPCTSTR、LPTSTR、_T()、_TEXT()...),它表示使用一种中间类型,既不明确表示使用 MBCS,也不明确表示使用 UNICODE。那到底使用哪种字符集那?嘿嘿......编译的时候决定吧。设置条件编译的方式是:VC6中,"Project\Settings...\C/C++卡片 Preprocessor definitions" 中添加或修改 _MBCS、_UNICODE;VC.NET中,"项目\属性\配置属性\常规\字符集"然后用组合窗进行选择。使用 T 类型,是非常好的习惯,严重推荐!

lzg0001 2006-07-14
  • 打赏
  • 举报
回复
听别人说没太大益处,多写写,多试试吧!
我还是推荐那本《window程序设计》第五版,那里用纯C在底层告诉你怎样进行WINDOWS编程,不过在花红柳绿的泡沫充斥世界的今天,这本书不好找了,我也只找到了上册!另外,Microsrft Press的东西比较贵,二本另1CD共160,幸好你只要第一本就够了!
gx_lqh 2006-07-14
  • 打赏
  • 举报
回复
呵呵~~不好意思,我也知道Win98乃行將就木,淘汰已是不可避免的趨勢!也認爲要兼容UNICODE/ANSI的應用程序幾乎不太可能,但是上司要我研究這方面,我也跟他說過,他說先研究,所以我也只好在這裡集思廣益,想多聼聼大家的意見~~
gx_lqh 2006-07-13
  • 打赏
  • 举报
回复
在程序中沒有定义UNICODE和_UNICODE宏
因爲UNICODE方式编译的程序不能在Win98上執行
kopa 2006-07-13
  • 打赏
  • 举报
回复
如果你定义了UNICODE和_UNICODE宏
那么程序就是用UNICODE方式编译

wlwlxj 2006-07-13
  • 打赏
  • 举报
回复
使用VC定义的宏,比如TCHAR lstrlen等
lzg0001 2006-07-13
  • 打赏
  • 举报
回复
《window程序设计》第五版,microsoft press,北京大学出版社引进,里面对此有很深入的讨论,作者特别注意要在不修改源码的情况下同时支持UNICODE和非UNICODE环境.而且里面的代码都可以在UNICODE和非UNICODE下不作任何修改编译、运行!典范之作!
qrlvls 2006-07-13
  • 打赏
  • 举报
回复
这与操作系统无关,相关的是带 UNICODE 宏的代码编译还是不带 UNICODE 宏的代码编译,即是说要得到不同的值,那么生成的两个应用程序是不同的,同一个应用程序在2k和98上得到的结果是相同的
hewok 2006-07-13
  • 打赏
  • 举报
回复
_T("")不是识别操作系统的,是在编译时如果定义了UNICODE和_UNICODE,那么编译出来的就是UNICODE,如果定义了_MBCS则是ANSI的,默认是ANSI的
gx_lqh 2006-07-13
  • 打赏
  • 举报
回复
UP FOR MYSELF

16,550

社区成员

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

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

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