Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 5374|回复: 3

如何修改环境变量?

[复制链接]

该用户从未签到

发表于 2009-2-28 21:39:27 | 显示全部楼层 |阅读模式
我在Ubuntu下用Lazarus 0.9.24建立了一个测试读取并设置环境变量的程序,源代码如下:

[code]unit frmGSEnv;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls;

type

  { TfrmGetSetEnv }

  TfrmGetSetEnv = class(TForm)
    bGet: TButton;
    bSet: TButton;
    eEnvName: TLabeledEdit;
    eEnvValue: TLabeledEdit;
    procedure bGetClick(Sender: TObject);
    procedure bSetClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  frmGetSetEnv: TfrmGetSetEnv;

implementation

{ TfrmGetSetEnv }

procedure TfrmGetSetEnv.bGetClick(Sender: TObject);
begin
  eEnvValue.Text := GetEnvironmentVariable(eEnvName.Text);
end;

procedure TfrmGetSetEnv.bSetClick(Sender: TObject);
begin
  SetEnvironmentVariable(eEnvName.Text, eEnvValue.Text);
end;

initialization
  {$I frmGSEnv.lrs}

end.[/code]

编译时提示:
frmGSEnv.pas(42,25) Error: Identifier not found "SetEnvironmentVariable"
frmGSEnv.pas(42,56) Error: Illegal expression
frmGSEnv.pas(50) Fatal: There were 2 errors compiling module, stopping

我用SetEnvironmentVariable、putenv、setenv遍查了Free Pascal和Lazarus的代码,未发现满足条件的函数定义,有没有人遇到过同样的问题?怎么解决的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x

评分

参与人数 1威望 +10 收起 理由
猫工 + 10 优秀文章

查看全部评分

回复

使用道具 举报

该用户从未签到

发表于 2009-2-28 22:04:00 | 显示全部楼层
我是在rh9和centos5.2下运行lazarus,没有试过Ubuntu
不过你可以单步试一下,看call stack里是什么情况
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-3-2 17:21:13 | 显示全部楼层
猫工:谢了

C标准库提供了putenv和getenv两个函数,Free Pascal SysUtils单元只提供了读取环境变量的函数,没有用于修改的配对函数,当然也不是大问题,通过变通也可以处理掉
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-3-2 17:25:02 | 显示全部楼层
哦,原来是这样
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 22:18 , Processed in 0.144285 second(s), 14 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表