我知道VC里面用_t+函数名和T(字符串),来控制实际的编译结果。
如果工程属性是ANSI,那么_tprintf就是printf,T就是char*
如果工程属性是Unicode,那么_tprintf就是wprintf,T就是wchar_t*可是,main函数为什么还要写成_tmain()呢? 难道进程的入口函数本身还要分宽字符版本和窄字符版本呢?
入口函数不就是一个入口么,难道还要分版本? 分了好像也没有什么实际意义啊!
如果工程属性是ANSI,那么_tprintf就是printf,T就是char*
如果工程属性是Unicode,那么_tprintf就是wprintf,T就是wchar_t*可是,main函数为什么还要写成_tmain()呢? 难道进程的入口函数本身还要分宽字符版本和窄字符版本呢?
入口函数不就是一个入口么,难道还要分版本? 分了好像也没有什么实际意义啊!
解决方案 »
- ?MFC坐标映射误差,怎样消除
- 不知道这个错误如何产生的:对一未命名文件进行访问时发生了一个不明错误
- Activex控件在IE中,socket功能不能发包
- 兄弟我做了个网络下载工具,朋友们捧场给点意见
- 请教:使用MFC中的CDaoRecordset类实现模糊查询,我的sql语句是:"select * from foodToProducer where foodName like '%"+ strTemp +"%'
- root分析之一:HOOK磁盘驱动
- 如何看别人的源代码??
- 一个很简单的问题,问了好久都没得到解决,郁闷!!
- 如何以其他窗口为父窗口创建对话框?
- 【求助】这个界面绘制如何实现的呢?谢谢
- 求助,通过Invoke执行fireEvent函数报错!!谢谢
- VC怎样读取打印机的状态
我在csdn下载频道里面寻找"钱林松"结果什么也没有找到。
请问哪里有这本书的下载? 谢谢!
ANSI是西文英语的,而可以显示世界绝大部分国家地区的语言文字。
为了跨平台,以及数据交换交互,UNICODE将是未来的主流趋向。不同的ANSI体系下的字符编码,互不兼容。因此这给跨平台的多语言软件版本带来了挑战。
不同国家的字符串的表示形式和内存占位也是不一样的,因此设定了两种函数。
int main(int argc,char *argv[])
{
.....
}
我是菜鸟,请别见笑啊
unicode是另外一种编码规则,是标准化的字符集,理论上囊括了世界上所有语言的字符,而且不会产生重复。
我也有同样的疑问!"wprintf要进行双字节解释,就不行了": 本来"你好"这两个字就是双字节的,wprintf为什么就不能输出了?
而且既然Printf是单字节输出的,那么我期待他把中文拆成一些ascii字符进行输出。它怎么就能输出中文呢?
还是说,printf只是把这些字节流传给了控制台,控制台程序再去判断? 可如果是这样的话,wprintf也应该能工作啊,即使我不setlocale?