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函数,但结果就是不对……
ACE_TEXT_ALWAYS_CHAR 这个宏定义内部用了:WideCharToMultiByte,不过不明白你的本意。你是说指针指向的内存混乱,还是不转换? winston 发表于 2012-4-23 09:59 static/image/common/back.gif
ACE_TEXT_ALWAYS_CHAR 这个宏定义内部用了:WideCharToMultiByte,不过不明白你的本意。你是说指针指向的内 ...
两个都有吧~~,运行到t1时没有转换,运行到t2时t1又指向t2转换后的内容了……
页:
[1]