Ada 95中是否有一个函数返回一个包含Windows应用程序中记录的用户名的字符串? 感谢。
答案 0 :(得分:3)
一般的答案是使用您的Ada环境支持的任何机制来调用本机Win32 API函数,并调用GetUserName
函数。
答案 1 :(得分:2)
GNAT特定包Ada.Command_Line.Environment
可能是一种可用的替代方案。
答案 2 :(得分:2)
如果您被允许使用Ada 2005,则可以使用包Ada.Environment_Variables来获取USERNAME
的值(我认为这是适合Windows的env var?它是USER
on达尔文......)
答案 3 :(得分:2)
使用来自@KeithThompson评论的想法,加上@SimonWright USERNAME建议,一种方法是使用代码:
function GetUsername return String is
function GetEnv (Variable : String) return Interfaces.C.Strings.chars_ptr;
pragma Import (C, GetEnv, "getenv");
Command : constant String := "USERNAME";
Answer_Ptr : constant Interfaces.C.Strings.chars_ptr := GetEnv (Command);
Answer : constant String := Interfaces.C.Strings.Value (Answer_Ptr);
begin
return Answer;
end GetUsername;
不是纯粹的Ada 95,但它很合适(我不必使用gnat05开关)。