我使用这个功能来获得用户文件夹:德尔福的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利用自己的导入来解决问题。 –