找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4981|回复: 2

ACE_TEXT_ALWAYS_CHAR 是否有问题?

[复制链接]
发表于 2012-4-22 13:41:48 | 显示全部楼层 |阅读模式
本帖最后由 糖醋排骨 于 2012-4-22 13:43 编辑

定义了ACE_USES_WCHAR宏后,在用ACE_TEXT_ALWAYS_CHAR将TCHAR转换为Char时发现有个很神奇的地方,测试代码如下。

    ACE_CDR::Char *t1;
    t1=ACE_TEXT_ALWAYS_CHAR(L"E:\\测试.exe");      //⑴
    ACE_CDR::Char *t2;
    t2=ACE_Wide_To_Ascii::convert(L"E:\\测试123.exe");    //⑵

程序运作到⑴处时发现根本没有转换!如图所示:



程序运作到⑵处时t1中竟是t2的内容,如图:


看了看源代码,发现ACE_TEXT_ALWAYS_CHAR 也在内部调用了convert函数,但结果就是不对……




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?用户注册

×
发表于 2012-4-23 09:59:49 | 显示全部楼层
ACE_TEXT_ALWAYS_CHAR 这个宏定义内部用了:WideCharToMultiByte,不过不明白你的本意。你是说指针指向的内存混乱,还是不转换?
 楼主| 发表于 2012-4-24 15:38:10 | 显示全部楼层
winston 发表于 2012-4-23 09:59
ACE_TEXT_ALWAYS_CHAR 这个宏定义内部用了:WideCharToMultiByte,不过不明白你的本意。你是说指针指向的内 ...

两个都有吧~~,运行到t1时没有转换,运行到t2时t1又指向t2转换后的内容了……
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-7 14:16 , Processed in 0.013175 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表