LPTSTR pszHostName;
LPTSTR pszTmp; CString strTmp;//自定义函数 CString GetNetName(LPCTSTR str);1)strTmp = GetNetName((LPCTSTR)m_ListCtrl.GetItemText(iItemNum, 4));
pszTmp = (LPTSTR)(LPCTSTR)strTmp;2)pszHostName = (LPTSTR)(LPCTSTR)GetNetName((LPCTSTR)m_ListCtrl.GetItemText(iItemNum, 4));如上 1)和 2)的 pszTmp ,pszHostName 的结果应该是一样的吧,但是在我程序里跑出的结果是 1)正确,2)空结果
LPTSTR pszTmp; CString strTmp;//自定义函数 CString GetNetName(LPCTSTR str);1)strTmp = GetNetName((LPCTSTR)m_ListCtrl.GetItemText(iItemNum, 4));
pszTmp = (LPTSTR)(LPCTSTR)strTmp;2)pszHostName = (LPTSTR)(LPCTSTR)GetNetName((LPCTSTR)m_ListCtrl.GetItemText(iItemNum, 4));如上 1)和 2)的 pszTmp ,pszHostName 的结果应该是一样的吧,但是在我程序里跑出的结果是 1)正确,2)空结果
LPCTSTR改成CString应该可以
这个是正确。因为strTmp保存了GetNetName返回的临时CString对象。
strcpy((LPTSTR)(LPCTSTR)GetNetName((CString)m_ListCtrl.GetItemText(iItemNum, 4)));
strcpy((LPTSTR)(LPCTSTR)GetNetName((CString)m_ListCtrl.GetItemText(iItemNum, 4)));同意楼上的说法。一般基于CString都可以直接做转换
pszTmp = (LPTSTR)(LPCTSTR)strTmp;
直接强制转换就可以了,没必要调用GetName().
综合大家的意见及网上查询基本理解了,谢谢各位