Interstage Application Server ディレクトリサービス運用ガイド
|
目次
索引

|
9.1.3 アプリケーション開発時の注意事項
本ライブラリを使用してアプリケーションを開発する際には、以下の注意が必要です。
動作環境

SDKのライブラリ(F3FMirepldap2.dll)が格納されたパスは、PATH変数に定義されます。


SDKのライブラリ(libirepldap2.so)は、/opt/FJSVirepc/libに格納されています。
LDAPのクライアントAPI関数を使用する場合には、コンパイルやリンクの際に以下のオプションを指定する必要があります。

■Windows Server 2003 for Itanium-based Systemsではない場合
- Microsoft(R) Visual C++(R) .NET Standardの場合
- Microsoft(R) Visual C++(R) .NET Standard 2003の場合
- Microsoft(R) Visual Studio(R) 2005の場合
Microsoft(R) Visual C++(R) .NET Standardの場合
【コンパイル時(必須)】
- インクルードディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [全般] で“追加のインクルード ディレクトリ”で、idldap.hがインストールされているフォルダ(“C:\Interstage\IREPSDK\include”)を設定してください。
- プリコンパイル済みヘッダーの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“自動的に作成する(YX)”設定してください。
- ランタイムライブラリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [コード生成]の“ランタイム ライブラリ”を“マルチスレッド DLL (/MD)”に設定してください。
【リンク時(必須)】
- LDAP-APIライブラリの指定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [入力]で“追加する依存関係”に“F3FMirepldap2.lib”を追加してください。
- ライブラリディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [全般]で“追加のライブラリ ディレクトリ”に、LDAP-APIライブラリがインストールされているフォルダ“C:\Interstage\IREPSDK\lib”を指定してください。
- [リンカ] - [全般]の“インクリメンタル リンクを有効にする”が“インクリメンタル リンクを行わない(INCREMENTAL:NO)”が指定されている場合は、“インクリメンタル リンクを行う(/INCREMENTAL)”に変更してください。
Microsoft(R) Visual C++(R) .NET Standard 2003の場合
【コンパイル時(必須)】
- インクルードディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [全般] で“追加のインクルード ディレクトリ”で、idldap.hがインストールされているフォルダ(“C:\Interstage\IREPSDK\include”)を設定してください。
- プリコンパイル済みヘッダーの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“自動的に作成する(YX)”設定してください。
- ランタイムライブラリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [コード生成]の“ランタイム ライブラリ”を“マルチスレッド DLL (/MD)”に設定してください。
【リンク時(必須)】
- LDAP-APIライブラリの指定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [入力]で“追加の依存ファイル”に“F3FMirepldap2.lib”を追加してください。
- ライブラリディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [全般]で“追加のライブラリ ディレクトリ”に、LDAP-APIライブラリがインストールされているフォルダ“C:\Interstage\IREPSDK\lib”を指定してください。
- [リンカ] - [全般]の“インクリメンタル リンクを有効にする”が“インクリメンタル リンクを行わない(INCREMENTAL:NO)”が指定されている場合は、“インクリメンタル リンクを行う(/INCREMENTAL)”に変更してください。
Microsoft(R) Visual Studio(R) 2005の場合
【コンパイル時(必須)】
- インクルードディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [全般] で“追加のインクルード ディレクトリ”で、idldap.hがインストールされているフォルダ(“C:\Interstage\IREPSDK\include”)を設定してください。
- プリコンパイル済みヘッダーの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“プリコンパイル済みヘッダーを使用しない”に設定してください。
- ランタイムライブラリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [コード生成]の“ランタイム ライブラリ”を“マルチスレッド DLL (/MD)”に設定してください。
【リンク時(必須)】
- LDAP-APIライブラリの指定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [入力]で“追加の依存ファイル”に“F3FMirepldap2.lib”を追加してください。
- ライブラリディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [全般]で“追加のライブラリ ディレクトリ”に、LDAP-APIライブラリがインストールされているフォルダ“C:\Interstage\IREPSDK\lib”を指定してください。
- [リンカ] - [全般]の“インクリメンタル リンクを有効にする”が“インクリメンタル リンクを行わない(INCREMENTAL:NO)”が指定されている場合は、“インクリメンタル リンクを行う(/INCREMENTAL)”に変更してください。
■Windows Server 2003 for Itanium-based Systemsの場合
- Microsoft(R) Visual Studio(R) 2005を使用する場合
- Microsoft(R) Windows Server 2003 SP1 Platform SDKを使用する場合
Microsoft(R) Visual Studio(R) 2005を使用する場合

Windows(R) 2000 Server、Windows(R) 2000 Advanced Server、およびWindows(R) 2000 Professional上では、Microsoft(R) Visual Studio(R) 2005を使ってアプリケーションを開発できません。他のOS上で開発してください。
- 以下のファイル/フォルダを、Microsoft(R) Visual Studio(R) 2005がインストールされているマシンの任意の位置にコピーします。
- インクルードファイル
“C:\Interstage\IREPSDK\include\idldap.h”
- ライブラリ
“C:\Interstage\IREPSDK\lib\F3FMirepldap2.lib”
- 以下のように設定してください。
【コンパイル時(必須)】
- インクルードディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [全般] で“追加のインクルード ディレクトリ”で、手順1で、インクルードファイルをコピーしたフォルダを設定してください。
- プリコンパイル済みヘッダーの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“プリコンパイル済みヘッダーを使用しない”に設定してください。
- ランタイムライブラリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [C/C++] - [コード生成]の“ランタイム ライブラリ”を“マルチスレッド DLL (/MD)”に設定してください。
【リンク時(必須)】
- LDAP-APIライブラリの指定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [入力]で“追加の依存ファイル”で、“F3FMirepldap2.lib”を追加してください。
- ライブラリディレクトリの設定
- ソリューションエクスプローラでプロジェクトを選択します。
- [表示] > [プロパティページ]でプロパティページを開きます。
- [リンカ] - [全般]で“追加のライブラリ ディレクトリ”で、手順1で、ライブラリをコピーしたフォルダを指定してください。
- [リンカ] - [全般]の“インクリメンタル リンクを有効にする”が“インクリメンタル リンクを行わない(INCREMENTAL:NO)”が指定されている場合は、“インクリメンタル リンクを行う(/INCREMENTAL)”に変更してください。
Microsoft(R) Windows Server 2003 SP1 Platform SDKを使用する場合
【コンパイル時(必須)】


インクルードファイルは、以下のディレクトリにあります。
“/opt/FJSVirepc/include”
ライブラリはマルチスレッド用を提供しています。以下を指定してください。

“-mt”

“-fPIC -D_REENTRANT”
インクルードファイル
各関数を呼び出す際に使用する構造体やdefineシンボルは、idldap.hで定義されています。このため、ソース中に以下の行を記述する必要があります。
特殊文字を含むDN
DNに、記号を指定する場合、いくつかの記号は特殊文字として扱われます。特殊文字を指定するには、その特殊文字の前に「\」(エンマーク)を置いてエスケープするか、または「"」(ダブル引用符)で囲む必要があります。
エスケープが必要な特殊文字を以下に示します。
- “,”(カンマ)
- “+”(プラス)
- “"”(ダブル引用符)
- “<”(小なり)
- “>”(大なり)
- “;”(セミコロン)
- “#”(シャープ)(DNの先頭文字に指定する場合のみ)
エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。
cn=a\b,o=Fujitsu, Inc.,c=jp
LDAP、C言語それぞれで、「\」(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。
「\」を含むcn属性を指定するとします。
a\b
LDAPの規約により「\」をエスケープする必要があります。
cn=a\\b
C言語の仕様により、この名前を指定するために、それぞれの「\」をエスケープする必要があります。
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、属性値の指定
DNおよび属性値に日本語を含む文字列を指定することができます。
データのコード系がUTF-8形式以外の場合は、コード変換するための関数を使用してUTF-8形式に変換する必要があります。
詳細は、“リファレンスマニュアル(API編)”の“コード変換インタフェース”を参照してください。
文字列データの受渡し
関数のパラメタで文字列データのアドレスを指定する場合、指定された文字列の最後には、「\0」(NULL文字)が設定されていなければなりません。
また、復帰情報として文字列データのアドレスを返す場合は、通知された文字列の最後に、「\0」(NULL文字)が設定されています。
マルチスレッド環境での使用
LDAPのクライアントAPI関数は、ldapssl_init()を除いてスレッドセーフです。ただし、1個のセションを複数のスレッドで共有することはできません。
複数のスレッドがInterstage ディレクトリサービスと通信する場合は、各スレッドが各々セションをオープンする必要があります。
アプリケーション実行時

SSLを使用する場合、以下のパスをPATH変数に設定してください。
%ProgramFiles%\Common Files\Fujitsu Shared\F3FSSMEE |


SDKのライブラリ(libirepldap2.so)へのパスを解決してください。
Copyright 2007 FUJITSU LIMITED