在Ada中使用.net命令
我知道,这是一个很难回答的问题,但是。。。。。我不知道:( 我正在使用dotnet gnat,我在Ada中使用platform.Net的命令时遇到问题…我可以使用WriteLine,但不能使用ReadLine命令。。。。 如何知道使用某些命令的正确方法 我的代码:在Ada中使用.net命令,.net,ada,gnat,.net,Ada,Gnat,我知道,这是一个很难回答的问题,但是。。。。。我不知道:( 我正在使用dotnet gnat,我在Ada中使用platform.Net的命令时遇到问题…我可以使用WriteLine,但不能使用ReadLine命令。。。。 如何知道使用某些命令的正确方法 我的代码: with Ada.Text_IO, MSSyst.Console; use Ada.Text_IO, MSSyst.Console; procedure ada_net is begin Put("Ola mundo");
with Ada.Text_IO, MSSyst.Console;
use Ada.Text_IO, MSSyst.Console;
procedure ada_net is
begin
Put("Ola mundo");
New_line;
WriteLine("Ola mundo");
--ReadLine;
end ada_net;
可读代码:
function ReadLine return access MSSyst.String.Typ'Class;
pragma Export (CIL, ReadLine, "ReadLine");
谢谢。我没有使用过.Net,但我可以马上告诉您,由于ReadLine是一个函数,因此需要将其作为一个函数调用。您需要一个与ReadLine的返回类型兼容的变量,并将调用ReadLine的结果分配给它。是否混淆了导入和导出?
with
MSSyst.String,
MSSyst.Console,
Ada.Text_IO;
procedure Test is
begin
Ada.Text_IO.Put_Line( "Dotnet test." );
Ada.Text_IO.Put( "Enter a line: " );
declare
Line : access MSSyst.String.Typ'Class renames MSSyst.Console.ReadLine; --'
use MSSyst.String;
Function "&"( Left, Right : access Typ'Class ) return access Typ'Class renames Concat;
Function "&"( Left : String; Right : access Typ'Class ) return access Typ'Class is
( (+Left) & Right );
begin
MSSyst.Console.WriteLine( ("You entered: """ & Line) & (+(1=> '"')));
end;
end Test;