百度空间 | 百度首页 
 
查看文章
 
函数_tprintf、_tprintf_s与ATL中Unicode转换类CA2CT之间的奇怪问题
2009年09月22日 星期二 下午 06:24

看下面一段代码:

#include <atlbase.h>
#include <atlconv.h>

int _tmain(int argc, _TCHAR* argv[])
{
    char* s = "sdfsdfssdv";
    int t = 10;
    printf("%s, %d\n", s, t);
    _tprintf_s(_T("%s, %d\n"), CA2CT(s), t);
    return 0;
}

正常情况下应该输出

sdfsdfssdv, 10
sdfsdfssdv, 10

但是,实际输出的却是

sdfsdfssdv, 10
sdfsdfssdv, 6553715

这很令人费解,尚未找到问题原因。

如果把上述代码中的CA2CT(s)改成CA2CT(s).m_psz的话,程序恢复正常。请知情人士告诉俺咋回事……


类别:visual c++ | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2009年09月22日 星期二 下午 09:36 | 回复
我知道,但是我不告诉你
 
3
2009年09月23日 星期三 上午 08:54 | 回复
回复Xiao___Q:小千千!!~~~
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu