procedure Tfeditlink.SpeedButton4Click(Sender: TObject);
var
ppidl: PITEMIDLIST;
bi: BROWSEINFO;
ret: Array[0..MAX_PATH - 1] of Char;
begin
SHGetSpecialFolderLocation(
application.Handle,
CSIDL_NETWORK,
ppidl);
bi.hwndOwner := Handle;
bi.pidlRoot := ppidl;
bi.pszDisplayName := ret;
bi.lpszTitle := '选择计算机名称:';
bi.ulFlags := BIF_BROWSEFORCOMPUTER ;
bi.lpfn := nil;
SHBrowseForfolder(bi);
sname.text:=ret;
end;************
* 努力学习 *
* 全为 *
*¥人民币¥*
************
var
ppidl: PITEMIDLIST;
bi: BROWSEINFO;
ret: Array[0..MAX_PATH - 1] of Char;
begin
SHGetSpecialFolderLocation(
application.Handle,
CSIDL_NETWORK,
ppidl);
bi.hwndOwner := Handle;
bi.pidlRoot := ppidl;
bi.pszDisplayName := ret;
bi.lpszTitle := '选择计算机名称:';
bi.ulFlags := BIF_BROWSEFORCOMPUTER ;
bi.lpfn := nil;
SHBrowseForfolder(bi);
sname.text:=ret;
end;************
* 努力学习 *
* 全为 *
*¥人民币¥*
************
现在程序编译停止在SHBrowseForFolder(bi)处,出错信息
[C++ Error] Unitdir.cpp(41): E2034 Cannot convert '_browseinfoA' to '_browseinfoA *'
[C++ Error] Unitdir.cpp(41): E2342 Type mismatch in parameter 'lpbi' (wanted '_browseinfoA *', got '_browseinfoA')
这是什么意思?现在代码为
LPITEMIDLIST DesktopPidl;
BROWSEINFO bi;
char DesktopDir[MAX_PATH];
int nFolder;
nFolder = CSIDL_NETWORK;
SHGetSpecialFolderLocation(Application ->Handle,nFolder,&DesktopPidl);
bi.hwndOwner = Handle;
bi.pidlRoot = DesktopPidl;
bi.pszDisplayName = DesktopDir;
bi.lpszTitle = "选择数据库服务器名称:";
bi.ulFlags = BIF_BROWSEFORCOMPUTER ;
bi.lpfn = NULL;
SHBrowseForFolder(bi); <------出错
Edit1 ->Text =DesktopDir;