我使用這個功能來獲得用戶文件夾:德爾福的SHGetFolderPath和空結束的字符串
function LocalAppDataPath : string;
const
SHGFP_TYPE_CURRENT = 0;
var
path: array [0..MaxChar] of char;
begin
SHGetFolderPath(0,CSIDL_LOCAL_APPDATA,0,SHGFP_TYPE_CURRENT,@path[0]);
Result := StrPas(path);
end;
這是偉大的工作。 但我把這個lib添加到我的項目後:OpenJpeg 從這個函數返回的值是:C.這似乎是由於某些原因,「路徑」數組中的每個字符後有#0,並因此返回字符串在開始時被截斷。
當我刪除:OpenJpeg從我使用它一切正常。
任何想法,爲什麼會發生?
的SHGetFolderPath已被棄用,你可以嘗試Unicode和ANSI名字 \t'SHGetFolderPathW()'(** **的Unicode)和'SHGetFolderPathA()'(** ** ANSI)。我們也看不到你的delphi版本。 –
@ moskito-X:'ShGetFolderPath'映射到可以是W或A的版本,根據版本的Delphi,即無論是「的Unicode」與否。它不被棄用。但顯然,OpenJPeg利用自己的導入來解決問題。 –