3.5.1 UAP共用ライブラリのエクスポート
サービス関数がUAP共用ライブラリに存在する場合,ユーザサーバ起動時のUAP共用ライブラリに含まれる,ユーザサービス定義で指定するサービス関数は,必ずUAP共用ライブラリからエクスポートしてください。
エクスポートされていない場合(非常駐サーバの場合はプロセス起動時)は,次のように動作します。
- SPPの場合
-
KFCA00344-Eメッセージを出力後,dc_rpc_mainloop関数がDCRPCER_FATAL(-303)でエラーリターンします。
- MHPの場合
-
KFCA00344-Eメッセージを出力後,dc_mcf_mainloop関数がDCMCFER_FATAL(-11902)でエラーリターンします。
ユーザサービス定義で指定するサービス関数以外の関数のエクスポートは必須ではないため,処理形態に応じてエクスポートしてください。
UAP共用ライブラリから関数をエクスポートするには,libコマンドや,linkコマンドを用いる方法があります。次のどれかの方法でサービス関数をエクスポートしてください。
-
libコマンドまたはlinkコマンドで指定するオブジェクトファイル内で,__declspec(dllexport)でサービス関数名を定義する。
-
libコマンドで,/EXPORT:サービス関数名を指定する。
-
libコマンドで,/DEF:モジュール定義ファイルを指定し,モジュール定義ファイル中にEXPORTS文形式でサービス関数を定義する。
作成例については,次のサンプルソース(メイクファイル)を参照してください。
SPP開発言語と開発環境 |
メイクファイル名称 |
|
---|---|---|
C言語 |
%DCDIR%\examples\base\aplib\c\make_svdl |
|
COBOL言語 |
COBOL2002 |
%DCDIR%\examples\base\aplib\cobol\make_svdl |
Net Express |
%DCDIR%\examples\base\aplib\cobol\makemf_svdl |