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 即可。
{
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 即可。
相关文章推荐
- Microsoft Visual Studio 2010 Ultimate 下安装wcsf 2010出现问题
- 【vc++ 2010问题】使用visual c++/studio 2010编译程序后,出现_CrtIsValidHeapPointer(pUserData)错误
- Microsoft Visual Studio 2010 编译出现“GenerateResource”任务意外失败的解决方法
- Microsoft Visual Studio 2010(旗舰版) 没有.Net Framework 2.0 的问题
- [原] 安装VS2010出现Microsoft Visual Studio 2010 64bit Prerequisites (x64)错误
- Microsoft Visual Studio 2010编译生成总出现exe写入错误
- Microsoft Visual Studio 2010导致系统C盘不断增大问题处理。
- 关于Microsoft Visual Studio 2010 使用 APP GAME KIT中遇到的问题
- 安装Microsoft Visual Studio 2005软件,出现的问题
- VS2012出现 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage“问题的解决方法
- 安装Microsoft Visual Studio 2008 SP1时出现无法访问Windows Installer服务的问题
- Microsoft Visual Studio 2010升级Service Pack1问题
- 串口通信IN C++(适用于Microsoft Visual Studio 2010/2012/2013 ,VC++6.0 )
- [置顶] 解决Microsoft Visual Studio正忙办法(VS2015时经常出现此问题)
- 解决Microsoft visual studio 2010点击代码双击右键就崩溃的问题
- [备忘]Win7 64位安装VS2010出现错误failed for component Microsoft Visual Studio 2010 64bit Prerequisites (x64)解决办法
- VS2010 设置打开项目、解决方案时左边目录中出现的Microsoft Visual Studio 2010中的project位置
- 在win8下安装vs2008出现Microsoft Visual Studio Web创作组件安装失败问题的解决方法
- [备忘]Win7 64位安装VS2010出现错误failed for component Microsoft Visual Studio 2010 64bit Prerequisites (x64)解决办法
- 立即注册Microsoft Visual Studio 2010全球发布会,抢VIP席位,赢取限量礼品!