我要调用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;