Ada制作DLL
1151 ワード
gnatdllツールを使用してダイナミックリンクライブラリを作成できます.
最も簡単なコードを貼り付けます.
定義ファイルを出力するには、手動で行う必要があります.
mylib.defファイルの内容の例は次のとおりです.
次に以下のコマンドで作成します.
gcc -c myLib.ads
gnatdll -e mylib.def -d myLib.dll myLib.ali
gnatdllコマンドではaliファイルを使用するには、oファイルを使用するといくつかの関数の位置決めが見つかりません.
次に呼び出しテストを行います.
出力:
>test 3 4 >Exit code: 0
最も簡単なコードを貼り付けます.
package myLib is
-- C
function add(a,b:integer) return integer is (a+b);
pragma export(c,add,"add");
-- stdcall
function sub(a,b:integer) return integer is (a-b);
pragma export(stdcall,sub,"sub");
end myLib;
定義ファイルを出力するには、手動で行う必要があります.
mylib.defファイルの内容の例は次のとおりです.
LIBRARY "myLib"
EXPORTS
add
sub@8
次に以下のコマンドで作成します.
gcc -c myLib.ads
gnatdll -e mylib.def -d myLib.dll myLib.ali
gnatdllコマンドではaliファイルを使用するには、oファイルを使用するといくつかの関数の位置決めが見つかりません.
次に呼び出しテストを行います.
with Ada.Integer_Text_IO;
procedure test is
pragma linker_options("mylib.dll");
function "+"(a,b:integer) return integer with Import,external_name=>"add";
function "-"(a,b:integer) return integer with Import,Convention=>stdcall,external_name=>"sub";
begin
ada.integer_Text_IO.Put(1+2);
ada.integer_Text_IO.Put(10-6);
end test;
出力:
>test 3 4 >Exit code: 0