CListBox* hResultList=(CListBox *)GetDlgItem(IDC_RESULT);
TCHAR pszPath[]="Test";
int n=hResultList->AddString(me.szExePath);hResultList->SetItemDataPtr(n,pszPath); PVOID t=hResultList->GetItemDataPtr(n); 可是我不知道怎样把PVOID转换成TCHAR的?我是VC初学者,望指教
还有什么更好的使用SetItemDataPtr()和GetItemDataPtr()的方法吗?

解决方案 »

  1.   

    如果你PVOID是UNICODE字符串的话,直接转换就可以了
    如果不是你需要增加从ANSI到UNICODE的转换工作
      

  2.   

    TCHAR t= (TCHAR)hResultList->GetItemDataPtr(n);
      

  3.   

    小三同志,你这句话有问题啊!
    typedef char TCHARTCHAR *t= (TCHAR *)hResultList->GetItemDataPtr(n);
    才可以吧
      

  4.   

    谢谢大家,
    可是现在有一个新的问题,
    我在另一个过程中取值的时候就取不到了,是不是指针所指的值变了
    我是想在CListBox的每一项中存放一些数据,
    然后在需要的时候取出来!
    现在是放进去,立刻取就能取出来
    可是在其他一些过程中就取出乱码了,希望高手能帮我继续解决这个问题,谢谢了