掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
COBOLからDELPHI(DLL)を呼び出すには? (ID:40442)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
途中結果とハマっている問題です。 あまり理解していないまま、 記載しているため、説明がおかしいところは ご了承を。 Quest様のコメントより "引数がintegerやポインターが1つの場合は"〜@4"、integer等が2つなら"〜@8"となっていました。" @以降の数字が4の倍数となっていました。 DelphiのDLLを使用するために(イマイチ理解していませんが) COBOLのコンパイル時に、"DELPHI_DLL.LIB"を用いました。 「DELPHI_DLL.DEF」 LIBRARY DELPHI_DLL EXPORTS DELPHI_DLL@8 @1 コマンドプロンプトより、下記コマンド実行 lib /def:"DELPHI_DLL.DEF" /out:"DELPHI_DLL.LIB" で、実際のCOBOLとDelphiは、下記の通り (COBOL) 01 LEVEL1. 03 LEVEL3. 05 LEVEL5_1 PIC X(8). 05 LEVEL5_2 PIC X(8). INITIALIZE LEVEL1 MOVE 'FROM_COB1' TO LEVEL5_1 MOVE 'FROM_COB2' TO LEVEL5_2 CALL 'DELPHI_DLL' USING LEVEL1. (Delphi)「DELPHI_DLL」 function FUN1(FROM_COB:PChar):PChar;stdcall; var str_FROM_COB begin str_FROM_COB := FROM_COB; "str_FROM_COB"には、'FROM_COB1FROM_COB2'と入っている (Delphi)「DELPHI_DLL」(上記うまくいったため"var"を追加し) function FUN2(var FROM_COB:PChar):PChar;stdcall; var str_FROM_COB begin str_FROM_COB := FROM_COB; "str_FROM_COB"の処理で落ちてしまう。 値渡しと参照渡しでは、方法が違うのでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.