From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,c099e8bb1678b9a3,start X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews2.google.com!postnews1.google.com!not-for-mail From: tarantripathi@ieee.org (TARAN TRIPATHI) Newsgroups: comp.lang.ada Subject: Accessing Windows environment vairables in ObjectADA on windows Date: 15 Oct 2004 00:25:19 -0700 Organization: http://groups.google.com Message-ID: NNTP-Posting-Host: 203.200.40.199 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1097825119 12753 127.0.0.1 (15 Oct 2004 07:25:19 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 15 Oct 2004 07:25:19 +0000 (UTC) Xref: g2news1.google.com comp.lang.ada:5238 Date: 2004-10-15T00:25:19-07:00 List-Id: Hi All, This is what I have. I have a win batch file which sets an environment variable say "TEST_SOURCE_DIR" setlocal .. set TEST_SOURCE_DIR=%1 ... endlocal For the purpose of seeing how to do it I used set TEST_SOURCE_DIR=C:\ on command prompt to set the variable. I have to access this evironment variable in my ADA code. This is test code I wrote: with ADA.Text_IO,System.RTS.Win32; procedure GetEnvVar is EnvVal:String(1..100):=(others=>' '); len:System.RTS.Win32.DWORD:=100; begin Len:=System.RTS.Win32.GetEnvironmentVariable("TEST_SOURCE_DIR",EnvVal'Address,Len); Ada.Text_IO.Put_Line(EnvVal); end GetEnvVar; The GetEnvironmentVariable function is defined in System.RTS32.Win32 packages in Win32INT file. The problem is that the GetEnvironmentVariable function returns null for TEST_SOURCE_DIR but gives the correct value for all other Env variables like HOME, ALLUSERSPROFILE,APPDATA, PROCESSOR_ARCHITECTURE etc, but never for TEST_SOURCE_DIR. Also the funnier thing is that if I donot catch the return value of GetEnvironmentVariable funtion and use it as such System.RTS.Win32.GetEnvironmentVariable("TEST_SOURCE_DIR",EnvVal'Address,Len); I get a compiler error " Error: line 34 col 19 LRM:5.1(4), Procedure call, entry call, or code statement expected, Continuing " which relates to BNF for simple statement. I believe we need not necessarily capture the return value of any function(?) Does the variable being local or system variable make any difference? I googled many a times for this but no help. I've looked around at FAQ's and the adahome reference pages, but I haven't found anything. I an using ObjectAda 7.2 on Windows NT. I'm not supposed to use florist package or POSIX/ADA interface. Even a C library is not assured so that I can use #pragma Interface(C,getenv). I have to use the GetEnvironmentVariable function. Any help or pointers would be appreciated. Thanx in advance. Regards, Taran.