(顶者有分)巨奇怪的问题,关于将ishellfolder2->GetDetailsOf中的sd.str.pOleStr转为ansi的问题.都两天没怎么睡觉了,分不够就加

azk3000 2006-01-25 08:18:52
代码如下:
SHELLDETAILS sd;
TCHAR szTemp[MAX_PATH];
SHGetMalloc(&pMalloc);
hr = pIShellFolder2->GetDetailsOf (pidlRel1 , iSubItem, &sd);
if (SUCCEEDED (hr))
{

CString strTEMP = str;
switch (sd.str.uType)
{
case STRRET_CSTR:
_tcscpy (szTemp, sd.str.cStr);
break;
case STRRET_OFFSET:
break;
case STRRET_WSTR:
WideCharToMultiByte (CP_ACP, 0, sd.str.pOleStr, -1, szTemp, sizeof(szTemp), NULL, NULL);

pMalloc->Free (sd.str.pOleStr);
break;
}

现象:
得到显示名,类型名都没问题,关键是得到modified time字段时,如果sd.str.pOleStr的值是"2006-1-25",则szTemp的值被格式化正确,但有时sd.str.pOleStr的值是"25-1-2006",szTemp的值被格式化成"?2006?-?1?-25?",why????

问题
1:为什么sd.str.pOleStr的值有时会得到象这样的"25-1-2006"字符串?而且没有任何规律,有时同一文件得到的又是正确的"2006-1-25"
2:为什么在处理sd.str.uType为STRRET_WSTR类型既宽字符类型时,要将sd.str.pOleStr转成ANSI的字符集?没道理吧
3:如何才能转化sd.str.pOleStr成正确格式的szTemp?

请帮帮忙,都两天没怎么睡觉了,555555:(,谢谢谢谢谢谢谢谢,分不够就加,顶者有分
...全文
181 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
azk3000 2006-01-26
  • 打赏
  • 举报
回复
谢谢各位的支持,我试一下再来
danielzhu 2006-01-26
  • 打赏
  • 举报
回复
UP
wangk 2006-01-26
  • 打赏
  • 举报
回复
用StrRetToBuf。
TCHAR szTemp[MAX_PATH];
StrRetToBuf(&sd.str, pidlRel1, szTemp, MAX_PATH);
whuwdj 2006-01-26
  • 打赏
  • 举报
回复
striking 2006-01-26
  • 打赏
  • 举报
回复
WideCharToMultiByte (CP_ACP, 0, sd.str.pOleStr, -1, szTemp, sizeof(szTemp), NULL, NULL);

试着 在sd.str.pOleStr 结尾加一个 结束符
akz2000 2006-01-25
  • 打赏
  • 举报
回复
在debug下是好的,可是release就是不行
kalebuli 2006-01-25
  • 打赏
  • 举报
回复
帮顶!

╭=========================================╮

http://www.source520.com

站长开发推广同盟 站长朋友的终极驿站
同时拥有海量源码电子经典书籍下载

http://www.source520.com/search/search.asp

"编程.站长"论坛搜索引擎-----为中国站长注入动力!
╰=========================================╯
azk3000 2006-01-25
  • 打赏
  • 举报
回复
好困啊,不过要坚持,坚持,再坚持,高手们都帮帮忙吧
nodefault 2006-01-25
  • 打赏
  • 举报
回复
时间类型的数据从数据库读出来是要先转化为字符串处理就不会有问题了。
T97102003 2006-01-25
  • 打赏
  • 举报
回复
up

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧