Interstage Application Server Smart Repository運用ガイド |
目次
索引
![]() ![]() |
第6章 アプリケーションの作成(C API) | > 6.1 C APIの使用方法 |
本ライブラリを使用してアプリケーションを開発する際には、以下の注意が必要です。
SDKのライブラリ(F3FMirepldap2.dll)が格納されたパスは、PATH変数に定義されます。
SDKのライブラリ(libirepldap2.so)は、/opt/FJSVirepc/libに格納されています。
LDAPのクライアントAPI関数を使用する場合には、コンパイルやリンクの際に以下のオプションを指定する必要があります。
開発環境 |
設定方法 |
---|---|
Visual C++(R) .NET Standard |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [全般] で“追加のインクルード ディレクトリ”を設定してください。 |
開発環境 |
設定方法 |
---|---|
Visual C++(R) .NET Standard |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“自動的に作成する(YX)”設定してください。 |
Visual Studio(R) 2005 |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“プリコンパイル済みヘッダーを使用しない”に設定してください。 |
開発環境 |
設定方法 |
---|---|
Visual C++(R) .NET Standard |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [コード生成]の“ランタイム ライブラリ”を“マルチスレッド DLL (/MD)”に設定してください。 |
インクルードファイルは、以下のディレクトリにあります。
“/opt/FJSVirepc/include”
ライブラリはマルチスレッド用を提供しています。以下を指定してください。
“-mt”
“-fPIC -D_REENTRANT”
Red Hat Enterprise Linux AS (v.4 for EM64T)でアプリケーションを作成する場合は、gccコマンドに“-m32 -mtune=i386”オプションを指定してください。
なお、Red Hat Enterprise Linux AS (v.4 for x86)上で作成したアプリケーションは、そのまま、Red Hat Enterprise Linux AS (v.4 for EM64T)上の32-bit互換モードで動作させることができます。
開発環境 |
設定方法 |
---|---|
Visual C++(R) .NET Standard |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [入力]で“追加する依存関係”を設定してください。 |
Visual C++(R) .NET Standard 2003 |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [入力]で“追加の依存ファイル”を設定してください。 |
開発環境 |
設定方法 |
---|---|
Visual C++(R) .NET |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [全般]で“追加のライブラリ ディレクトリ”を指定してください。 |
各関数を呼び出す際に使用する構造体やdefineシンボルは、idldap.hで定義されています。このため、ソース中に以下の行を記述する必要があります。
#include "idldap.h" |
DNに、記号を指定する場合、いくつかの記号は特殊文字として扱われます。特殊文字を指定するには、その特殊文字の前に「\」(エンマーク)を置いてエスケープするか、または「"」(ダブル引用符)で囲む必要があります。
エスケープが必要な特殊文字を以下に示します。
エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。
cn=a\b,o=Fujitsu, Inc.,c=jpLDAP、C言語それぞれで、「\」(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。
「\」を含むcn属性を指定するとします。
a\bLDAPの規約により「\」をエスケープする必要があります。
cn=a\\bC言語の仕様により、この名前を指定するために、それぞれの「\」をエスケープする必要があります。
char *name1 = "cn=a\\\\b";同様に、「,」(カンマ)、「"」(ダブル引用符)の場合はそれぞれ次のようになります。
char *name2 = "cn=a\\,b"; char *name3 = "cn=a\\\"b";最初の例をC言語で使用する場合は、次のように記述します。
char *name = "cn=a\\\\b,o=Fujitsu\\, Inc.,c=jp";
DNおよび属性値に日本語を含む文字列を指定することができます。
UTF-8形式に変換するための関数を使用してUTF-8形式に変換する必要があります。
詳細については、“リファレンスマニュアル(API編)”の“コード変換インタフェース”を参照してください。
関数のパラメタで文字列データのアドレスを指定する場合、指定された文字列の最後には、「\0」(NULL文字)が設定されていなければなりません。
また、復帰情報として文字列データのアドレスを返す場合は、通知された文字列の最後に、「\0」(NULL文字)が設定されています。
LDAPのクライアントAPI関数は、ldapssl_init()を除いてスレッドセーフです。ただし、1個のセションを複数のスレッドで共有することはできません。
複数のスレッドがSmart Repositoryサーバと通信する場合は、各スレッドが各々セションをオープンする必要があります。
SSLを使用する場合、以下のパスをPATH変数に設定してください。
%ProgramFiles%\Common Files\Fujitsu Shared\F3FSSMEE |
SDKのライブラリ(libirepldap2.so)へのパスを解決してください。
目次
索引
![]() ![]() |