Ada中的Object或void *等价物

时间:2015-05-29 14:15:38

标签: object procedure ada

我试图在Ada中编写我的C程序版本。我的C函数调用如下所示:

b

搜索之后,我无法找到关于类型转换或任何形式的Object类或Ada的void指针对象的任何内容。我如何在Ada中实现这样的函数?

如果我无法在Ada中实现该功能,我将如何用Ada包装c函数?

我正在使用Ada95

2 个答案:

答案 0 :(得分:1)

type Example is tagged null record;

procedure Convert (From : in     Example'Class;
                   To   :    out Example'Class) is
begin
   null; --  Implement conversion here
end Convert;

答案 1 :(得分:0)

我设法使用System.Address和Ada.Unchecked_Conversion获得了我需要的东西。以下是我的代码:

with MyPackage;

type MyTypePtr is access MyType;

procedure Convert (From : in     System.Address;
                   To   : out  System.Address) is
   function ConvertAddressToMyType is new Ada.Unchecked_Conversion(
                        Source => System.Address;
                        Target => MyTypePtr); 
begin
   null; --  Implement conversion here
end Convert;