Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


例: C/C++ DLL を呼び出す COBOL プログラム

以下の例では、CALL ステートメントを使用して C/C++ ダイナミック・リンク・ライブラリー (DLL) を呼び出す COBOL プログラムを示しています。

この例では、以下の概念を示しています。

以下のステップを実行して、サンプルを作成して実行します。

  1. 以下のソースからファイル sub.c を作成します。このファイルが、DLL になります。

    #include <windows.h>
    #include <string.h>
    #include <stdio.h>
    
    BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD,LPVOID);
    _declspec (dllexport) int Sub(void);
    
    BOOL WINAPI  DllMain (
       HANDLE    hModule,
       DWORD     dwFunction,
       LPVOID    lpNot)
    {
    
       return TRUE;
    }
    
     _declspec (dllexport) int Sub(void)
        {
          printf (“Hello from sub.\n”);
            return 0;
        }
  2. 以下のステートメントを持つ sub.def というモジュール定義ファイルを作成します。この定義ファイルは、Sub を外部入口点にします。

     LIBRARY Sub
    
     EXPORTS
       Sub
  3. 以下のコマンドを使用して、DLL をコンパイルします。この結果が、COBOL によって呼び出される sub.dll というファイルになります。

    cl /EHsc /LD /DLL /DEF:sub.def sub.c
  4. 以下のソースを使用して、COBOL プログラムのファイル driver.cbl を作成して、sub.dll を呼び出します。

    cbl CALLINT(CDECL),PGMNAME(MIXED),LIST
         Identification Division.
         Program-Id. “Driver”.
         Data Division.
         Working-Storage Section.
         77  rc pic 9(8) usage binary.
         Procedure Division.
             Display “Hello World, from Driver”
    
             Call “Sub” returning rc
             Display “Sub Returned to Driver”
    
             Goback.
  5. 以下のコマンドを使用して、COBOL プログラムをコンパイルして、上で作成した DLL にリンクします。

    cob2 -g -v driver.cbl -IMP:sub.lib
  6. コマンド driver を発行してサンプルを実行します。

関連タスク
ダイナミック・リンク・ライブラリーの構築

関連参照
cob2 オプション
CDECL
CALL ステートメント (「COBOL for Windows 言語解説書」)


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)