Еще одна проблема вышла.

Слинкованный с ключом dos exe файл при вызове
Win.GetEnvironmentVariableW и  Win.GetEnvironmentVariableA
возвращает мусор .

При запуске из самого ББ выходит нормальное значение переменной окружения PATH.

Какие могут быть "мысли об Обероне" по поводу обхода этой проблемы?


MODULE mycgi2;
IMPORT Term := ConsoleOut, Win:=WinApi;

CONST
var1='PATH';

PROCEDURE Start*;
VAR
lpBuffer: ARRAY 256 OF CHAR;

lpBuffer2: ARRAY 256 OF SHORTCHAR;

nSize,res: INTEGER;

BEGIN
Term.Open;
Term.String('content-type: text/html'); Term.Ln; Term.Ln;
Term.String('<HTML>'); Term.Ln;
Term.String('<BODY>'); Term.Ln;

Term.String('<P>'); Term.Ln;
Term.String(var1); Term.Ln;
Term.String('</P>'); Term.Ln;

res:=Win.GetEnvironmentVariableW ('PATH', lpBuffer,  nSize);

Term.Int(res,10); Term.Ln;

res:=Win.GetEnvironmentVariableA ('PATH', lpBuffer2,  nSize);

Term.Int(res,10); Term.Ln;

Term.String('<P>'); Term.Ln;
Term.String(lpBuffer); Term.Ln;
Term.String('</P>'); Term.Ln;

Term.String('<P>'); Term.Ln;
Term.String("Hello, business!!!"); Term.Ln;
Term.String('</P>'); Term.Ln;
Term.String('</BODY>'); Term.Ln;
Term.String('</HTML>'); Term.Ln;
END Start;
BEGIN
Start;
END mycgi2.

mycgi2.Start


DevLinker.LinkExe dos mycgi2.exe := National Kernel+ Math Strings ConsoleOpen
ConsoleStdStreams ConsoleIn ConsoleOut  mycgi2~