Interstage Application Server Smart Repository運用ガイド |
目次
索引
![]() ![]() |
第6章 アプリケーションの作成(C API) |
ここでは、C言語プログラムからLDAPのクライアントAPIを使用する場合の関数仕様について説明します。
本ライブラリを使用する場合、以下の注意が必要です。
動作環境
SDKのライブラリは、PATH変数に定義されます。
SDKのライブラリは、/usr/libからシンボリックリンクされています。
コンパイル/リンクの際のオプション
LDAPのクライアントAPI関数を使用する場合には、コンパイルやリンクの際に以下のオプションを指定する必要があります。
- コンパイル時(必須)
- インクルードディレクトリの設定
idldap.hがインストールされているフォルダ(“C:\Interstage\ID\Dir\sdk\C\include”)を指定してください。
Visual C++ 5.0 または 6.0 使用
[ツール] → [オプション] → [ディレクトリ] → [表示するディレクトリ]でインクルードファイルを選択してパスを指定してください。
Visual C++ .NET 使用
[ツール] → [オプション] → [Projects] → [VC++ディレクトリ] → [ディレクトリを表示するプロジェクト]でインクルードファイルを選択してパスを指定してください。
- プリコンパイル済みヘッダーの設定
以下のとおりに設定してください。
Visual C++ 5.0 または 6.0 使用
[プロジェクト] → [設定] → [C/C++] → [プリコンパイル済みヘッダー] を“プリコンパイル済みヘッダーを自動的に使用”に設定してください。(デフォルト)
Visual C++ .NET 使用
ソリューションエクスプローラでプロジェクトを選択します。[表示] → [プロパティページ] → [C/C++] → [プリコンパイル済みヘッダー]を“自動的に作成する”に設定してください。
- プリプロセッサの定義(※スタティックリンクライブラリ使用時)
スタティックリンクライブラリを使用する場合は、FJID_STATICを定義してください。
Visual C++ 5.0 または 6.0 使用
[プロジェクト] → [設定] → [C/C++] → [プリプロセッサの定義] に追加してください。
Visual C++ .NET 使用
ソリューションエクスプローラでプロジェクトを選択します。[表示] → [プロパティページ] → [C/C++] → [プリプロセッサ] に追加してください。
マルチスレッド環境で使用する場合には以下を指定します。
"-DMULTI -D_REENTRANT"
以下を指定します。
"-fPIC"
マルチスレッド環境で使用する場合には以下を指定します。
"-fPIC -DMULTI -D_REENTRANT"- リンク時(必須)
- LDAP-APIライブラリの指定
“libidldap2.lib”を追加してください。
※ スタティックリンクライブラリを使用する場合、wsock32.libも同様に追加してください。
Visual C++ 5.0 または 6.0 使用
[プロジェクト] → [設定] → [リンク] → [オブジェクト/ライブラリモジュール]に追加してください。
Visual C++ .NET 使用
ソリューションエクスプローラでプロジェクトを選択します。[表示] → [プロパティページ] → [リンカ] → [コマンドライン]に追加してください。
- ライブラリディレクトリの設定
LDAP-APIライブラリがインストールされているフォルダ(“C:\Interstage\ID\Dir\sdk\C\lib\dynamic”)を指定してください。
※スタティックリンクライブラリ使用時は“C:\Interstage\ID\Dir\sdk\C\lib\static”を指定してください。
Visual C++ 5.0 または 6.0 使用
[ツール] → [オプション] → [ディレクトリ] → [表示するディレクトリ]でライブラリファイルを選択してパスを指定してください。
Visual C++ .NET 使用
[ツール] → [オプション] → [Projects] → [VC++ディレクトリ] → [ディレクトリを表示するプロジェクト]でライブラリファイルを選択してパスを指定してください。
- ランタイムライブラリの指定
使用するランタイムライブラリには、必ずマルチスレッド用のランタイムライブラリを使用してください。
Visual C++ 5.0 または 6.0 使用
[プロジェクト] → [設定] → [C/C++] → [コード生成] → [使用するランタイムライブラリ]で設定します。
Visual C++ .NET 使用
ソリューションエクスプローラでプロジェクトを選択します。[表示] → [プロパティページ] → [C/C++] → [コード生成] → [ランタイムライブラリ]で設定します。
※ Visual C++以外のCコンパイル環境を使用している場合は、各環境に合わせて、インクルードファイル、ライブラリの設定をしてください。
以下のライブラリを指定します。
"-ldl -lsocket -lnsl -lidldap2"
マルチスレッド環境で使用する場合には以下のライブラリを指定します。
"-lthread -ldl -lsocket -lnsl -lidldap2"
以下のライブラリを指定します。
"-ldl -lnsl -lidldap2"
マルチスレッド環境で使用する場合には以下のライブラリを指定します。
"-lpthread -ldl -lnsl -lidldap2"
ヘッダファイル
各関数を呼び出す際に使用する構造体やdefineシンボルについては、idldap.hで定義されています。このため、ソース中に以下の行を記述する必要があります。
#include "idldap.h"
文字列データの受渡し
関数のパラメタで文字列データのアドレスを指定する場合、指定された文字列の最後には、“\0”(NULL文字)が設定されていなければなりません。
また、復帰情報として文字列データのアドレスを返す場合は、通知された文字列の最後に、“\0”(NULL文字)が設定されています。
マルチスレッド環境での使用
LDAPのクライアントAPI関数は、スレッドセーフです。しかし、1個のセションを複数のスレッドで共有することはできません。
複数のスレッドがSmart Repositoryサーバと通信する場合は、各スレッドが各々セションをオープンする必要があります。
アプリケーション実行時
SSLを使用する場合、以下のパスをPATH変数に設定してください。ドライブ名にはシステムがインストールされているドライブ(「ドライブ名:\Program Files\Common Files\Fujitsu Shared\F3FSSMEE」)を指定してください。例
C:\Program Files\Common Files\Fujitsu Shared\F3FSSMEE
目次
索引
![]() ![]() |