我要调用SHBrowseForFolder来弹出特殊的文件夹窗体;
编译时没问题; 但程序运行到
SHGetPathFromIDList(idBrowse,tmp);
时DELPHI一直报错,请教一下错在哪里了*_*?
但是我在VB中都没有这种问题的!uses shlobj;procedure TForm1.Button1Click(Sender: TObject);
var
BrowseInfo: TBrowseInfo;
DisplayName: array[0..MAX_PATH] of char;
idBrowse,idl : PItemIDList;
tmp : PChar;
tmp1:string;
begin
SHGetSpecialFolderLocation(form1.Handle,17, idl);
with BrowseInfo do begin
hWndOwner:=form1.Handle;
pidlRoot:=idl;
pszDisplayName:=DisplayName;
lpszTitle:='Please choose a folder!';
ulFlags:=BIF_RETURNONLYFSDIRS;
lpfn:=nil;
lParam:=0;
end;
idBrowse:=SHBrowseForFolder(BrowseInfo);
if assigned(idBrowse) then
Begin
SHGetPathFromIDList(idBrowse,tmp); // SHELL32。DLL错误?
edit1.Text :=strpas(tmp);
end;
end;
编译时没问题; 但程序运行到
SHGetPathFromIDList(idBrowse,tmp);
时DELPHI一直报错,请教一下错在哪里了*_*?
但是我在VB中都没有这种问题的!uses shlobj;procedure TForm1.Button1Click(Sender: TObject);
var
BrowseInfo: TBrowseInfo;
DisplayName: array[0..MAX_PATH] of char;
idBrowse,idl : PItemIDList;
tmp : PChar;
tmp1:string;
begin
SHGetSpecialFolderLocation(form1.Handle,17, idl);
with BrowseInfo do begin
hWndOwner:=form1.Handle;
pidlRoot:=idl;
pszDisplayName:=DisplayName;
lpszTitle:='Please choose a folder!';
ulFlags:=BIF_RETURNONLYFSDIRS;
lpfn:=nil;
lParam:=0;
end;
idBrowse:=SHBrowseForFolder(BrowseInfo);
if assigned(idBrowse) then
Begin
SHGetPathFromIDList(idBrowse,tmp); // SHELL32。DLL错误?
edit1.Text :=strpas(tmp);
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货