小编Kaa*_*ann的帖子

为什么 Ada DLL 在通过 FFI 接口从 Rust 调用时会卡在 adainit 上?

开心案例

使用 Mingw 我在 Ada 中成功编译了一个最小的 hello world windows DLL 并通过 FFI 接口使用它:

package MY_FFI is
    procedure Hello_World
        with
            Export => True,
            Convention => C,
            External_Name => "hello_world";
end MY_FFI;

package body MY_FFI is
    procedure Hello_World is
    begin
        Ada.Text_IO.Put_Line("Hello world!");
    end Send_Request;
end MY_FFI;
Run Code Online (Sandbox Code Playgroud)
package MY_FFI is
    procedure Hello_World
        with
            Export => True,
            Convention => C,
            External_Name => "hello_world";
end MY_FFI;

package body MY_FFI is
    procedure Hello_World is
    begin
        Ada.Text_IO.Put_Line("Hello world!");
    end Send_Request;
end MY_FFI;
Run Code Online (Sandbox Code Playgroud)

结果是:

step 1
step 2 …
Run Code Online (Sandbox Code Playgroud)

windows dll ada ffi rust

6
推荐指数
1
解决办法
388
查看次数

标签 统计

ada ×1

dll ×1

ffi ×1

rust ×1

windows ×1