糖醋排骨 发表于 2012-4-22 13:41:48

ACE_TEXT_ALWAYS_CHAR 是否有问题?

本帖最后由 糖醋排骨 于 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函数,但结果就是不对……




winston 发表于 2012-4-23 09:59:49

ACE_TEXT_ALWAYS_CHAR 这个宏定义内部用了:WideCharToMultiByte,不过不明白你的本意。你是说指针指向的内存混乱,还是不转换?

糖醋排骨 发表于 2012-4-24 15:38:10

winston 发表于 2012-4-23 09:59 static/image/common/back.gif
ACE_TEXT_ALWAYS_CHAR 这个宏定义内部用了:WideCharToMultiByte,不过不明白你的本意。你是说指针指向的内 ...

两个都有吧~~,运行到t1时没有转换,运行到t2时t1又指向t2转换后的内容了……
页: [1]
查看完整版本: ACE_TEXT_ALWAYS_CHAR 是否有问题?