Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 是否有适用于Windows的Linux等效软件;SetEnvironmentVariable";应用程序编程接口?_Delphi - Fatal编程技术网

Delphi 是否有适用于Windows的Linux等效软件;SetEnvironmentVariable";应用程序编程接口?

Delphi 是否有适用于Windows的Linux等效软件;SetEnvironmentVariable";应用程序编程接口?,delphi,Delphi,在使用SetEnvironmentVariable()的windows兼容代码中有类似的内容 WindowsSetEnvironmentVariableAPI是否有Linux等价物 是的,等效函数为 但是,正如评论中所讨论的,这很可能不是解决您的特定问题的正确方法,更不用说,即使您现有的Windows代码也不应该像修改变量那样修改路径。只有一个问题-为什么要使用此代码?这完全没有必要,阿法西特。如果dllName包含目录,则不需要将其包含在LoadLibrary查找该目录的路径中。如果没有,那么

在使用SetEnvironmentVariable()的windows兼容代码中有类似的内容

Windows
SetEnvironmentVariable
API是否有Linux等价物

是的,等效函数为


但是,正如评论中所讨论的,这很可能不是解决您的特定问题的正确方法,更不用说,即使您现有的Windows代码也不应该像修改变量那样修改
路径。

只有一个问题-为什么要使用此代码?这完全没有必要,阿法西特。如果dllName包含目录,则不需要将其包含在LoadLibrary查找该目录的路径中。如果没有,那么您的SetEnvironmentVariable将在路径中包含一个空目录,这将不起任何作用。然而,这不是解决问题的方法。不是在Linux上。不是在窗户上。您想知道如何正确地解决您的问题吗?@HeartWare您的问题的一个答案可能与此无关,那就是依赖关系。@DavidFeffernan:说得好,David。没有想到…Delphi代码即使在Windows中也会出错。修改path环境变量并不是如何做到这一点。对于Linux,没有LoadLibrary函数。共享对象有等价物,但规则略有不同。在实现这一点之前,您需要了解这两个平台是如何处理的。当Windows代码出错时,尝试将代码从Windows移植到Linux是错误的,并且您不完全理解它在做什么,以及为什么出错。我再次敦促你们退后一步,试着去理解。你想那样做吗?
path := GetEnv('path');
SetEnvironmentVariable('path', PChar(ExtractFileDir(dllName) + ';' + path)); 
Handle := LoadLibrary(PChar(dllName));
SetEnvironmentVariable('path', PChar(path));
if Handle = 0 then begin
  Error := 'LoadLibrary(' + dllName + '): '+SysErrorMessage(GetLastError);
  FreeDll;
  exit
end;`