您的位置:首页 > 编程语言 > C语言/C++

Microsoft Visual Studio 2010 与VC++6.0的差异出现问题

2012-09-06 00:55 471 查看
void DirTreeView::OnInitialUpdate()

{

CTreeView::OnInitialUpdate();

CTreeCtrl &Tree=GetTreeCtrl();

LPSHELLFOLDER lpsf=NULL;//IShellFolder接口

LPITEMIDLIST lpi=NULL;//ITERMIDLSIT结构体指针

HRESULT hr;

TV_ITEM tvi;

CImageList m_Image;//记录的是与树型控件关联的图像列表

SHFILEINFO sfi;//存放文件信息的结构

HIMAGELIST sys_small_icon;

sys_small_icon = (HIMAGELIST)SHGetFileInfo(NULL,0,&sfi,sizeof(sfi),

SHGFI_SYSICONINDEX|SHGFI_SMALLICON);

m_Image.Attach(sys_small_icon);

Tree.SetImageList(&m_Image,TVSIL_NORMAL);//将系统图像列表设为树控件的图象列表

m_Image.Detach ();

// 得到指向“桌面”的指针

hr=SHGetDesktopFolder(&lpsf);

SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP,&lpi);

if (SUCCEEDED(hr))

{

Tree.DeleteAllItems();

char szBuff[MAX_PATH];//存放显示名称的缓冲区

TV_INSERTSTRUCT tvis; //向树型控件中插入节点时使用的结构

tvi.mask = TVIF_TEXT | TVIF_IMAGE |

TVIF_SELECTEDIMAGE | TVIF_CHILDREN ; //设置要插入的树节点信息

if(GetName(lpsf,lpi,SHGDN_NORMAL,szBuff)==FALSE)

return;

tvi.pszText = szBuff;//设置显示名称

GetNormalAndSelectedIcons(lpi, &tvi);

tvis.item = tvi;

tvis.hParent = TVI_ROOT;

hParent = GetTreeCtrl().InsertItem(&tvis);//插入根节点

FillTreeView(lpsf, NULL, hParent);

GetTreeCtrl().Expand (hParent,TVE_EXPAND);//展开“桌面”节点

lpsf->Release ();

}

}

加粗部分是问题所在
错误提示:

error C2440: '=' : cannot convert from 'char [260]' to 'LPWSTR'

解决办法:

char szBuff[MAX_PATH];//存放显示名称的缓冲区 中的char改成TCHAR 即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐