comp.lang.ada
 help / color / mirror / Atom feed
* Accessing Windows environment vairables in ObjectADA on windows
@ 2004-10-15  7:25 TARAN TRIPATHI
  2004-10-15 10:02 ` Marius Amado Alves
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: TARAN TRIPATHI @ 2004-10-15  7:25 UTC (permalink / raw)


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.



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-10-18 20:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-15  7:25 Accessing Windows environment vairables in ObjectADA on windows TARAN TRIPATHI
2004-10-15 10:02 ` Marius Amado Alves
2004-10-15 10:07 ` Marius Amado Alves
2004-10-15 10:15 ` Marius Amado Alves
     [not found] ` <311c6b78.0410150755.36b2e872@posting.google.com>
2004-10-16  1:18   ` Jeffrey Carter
2004-10-16  3:09 ` Steve
2004-10-18 20:01 ` Frank Beard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox