我试图在Ada中编写我的C程序版本。我的C函数调用如下所示:
b
搜索之后,我无法找到关于类型转换或任何形式的Object类或Ada的void指针对象的任何内容。我如何在Ada中实现这样的函数?
如果我无法在Ada中实现该功能,我将如何用Ada包装c函数?
我正在使用Ada95
答案 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;