Interstage Application Server Smart Repository運用ガイド |
目次
索引
![]() ![]() |
第6章 アプリケーションの作成(C API) | > 6.1 C APIの使用方法 |
本ライブラリを使用してアプリケーションを開発する際には、以下の注意が必要です。
動作環境
SDKのライブラリ(F3FMirepldap2.dll)が格納されたパスは、PATH変数に定義されます。
SDKのライブラリ(libirepldap2.so)は、/opt/FJSVirepc/libに格納されています。
LDAPのクライアントAPI関数を使用する場合には、コンパイルやリンクの際に以下のオプションを指定する必要があります。
![]()
Windows Server 2003 for Itanium-based Systems版ではない場合
- コンパイル時(必須)
- インクルードディレクトリの設定
idldap.hがインストールされているフォルダ(“C:\Interstage\IREPSDK\include”)を設定してください。
開発環境
設定方法
Microsoft(R) Visual C++(R) .NET Standard
Microsoft(R) Visual C++(R) .NET Standard 2003
Microsoft(R) Visual Studio(R) 2005ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [全般] で“追加のインクルード ディレクトリ”を設定してください。
- プリコンパイル済みヘッダーの設定
以下のとおりに設定してください。
開発環境
設定方法
Microsoft(R) Visual C++(R) .NET Standard
Microsoft(R) Visual C++(R) .NET Standard 2003ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“自動的に作成する(YX)”設定してください。
Microsoft(R) Visual Studio(R) 2005
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“プリコンパイル済みヘッダーを使用しない”に設定してください。
- ランタイムライブラリの設定
使用するランタイムライブラリは、以下のとおりに設定してください。
開発環境
設定方法
Microsoft(R) Visual C++(R) .NET Standard
Microsoft(R) Visual C++(R) .NET Standard 2003
Microsoft(R) Visual Studio(R) 2005ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [コード生成]の“ランタイム ライブラリ”を“マルチスレッド DLL (/MD)”に設定してください。
- リンク時(必須)
- LDAP-APIライブラリの指定
“F3FMirepldap2.lib”を追加してください。
開発環境
設定方法
Microsoft(R) Visual C++(R) .NET Standard
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [入力]で“追加する依存関係”を設定してください。
Microsoft(R) Visual C++(R) .NET Standard 2003
Microsoft(R) Visual Studio(R) 2005ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [入力]で“追加の依存ファイル”を設定してください。
- ライブラリディレクトリの設定
LDAP-APIライブラリがインストールされているフォルダ“C:\Interstage\IREPSDK\lib”を指定してください。
開発環境
設定方法
Microsoft(R) Visual C++(R) .NET
Microsoft(R) Visual C++(R) .NET 2003
Microsoft(R) Visual Studio(R) 2005ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [全般]で“追加のライブラリ ディレクトリ”を指定してください。
また、[リンカ] - [全般]の“インクリメンタル リンクを有効にする”が“インクリメンタル リンクを行わない(INCREMENTAL:NO)”が指定されている場合は、“インクリメンタル リンクを行う(/INCREMENTAL)”に変更してください。
Windows Server 2003 for Itanium-based Systems版の場合
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/C++] - [全般] で“追加のインクルード ディレクトリ”を設定してください。 |
開発環境 |
設定方法 |
---|---|
Microsoft(R) Visual Studio(R) 2005 |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [プリコンパイル済みヘッダー]の“プリコンパイル済みヘッダーの作成/使用”を“プリコンパイル済みヘッダーを使用しない”に設定してください。 |
開発環境 |
設定方法 |
---|---|
Microsoft(R) Visual Studio(R) 2005 |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[C/C++] - [コード生成]の“ランタイム ライブラリ”を“マルチスレッド DLL (/MD)”に設定してください。 |
開発環境 |
設定方法 |
---|---|
Microsoft(R) Visual Studio(R) 2005 |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [入力]で“追加の依存ファイル”を設定してください。 |
開発環境 |
設定方法 |
---|---|
Microsoft(R) Visual Studio(R) 2005 |
ソリューションエクスプローラでプロジェクトを選択します。[表示] > [プロパティページ]でプロパティページを開きます。[リンカ] - [全般]で“追加のライブラリ ディレクトリ”を指定してください。 |
C:\Interstage\IREPSDK\include |
set INCLUDE=%INCLUDE%;C:\Interstage\IREPSDK\include |
C:\Interstage\IREPSDK\lib |
set LIB=%LIB%;C:\Interstage\IREPSDK\lib |
インクルードファイルは、以下のディレクトリにあります。
“/opt/FJSVirepc/include”
ライブラリはマルチスレッド用を提供しています。以下を指定してください。
“-mt”
“-fPIC -D_REENTRANT”
インクルードファイル
各関数を呼び出す際に使用する構造体やdefineシンボルは、idldap.hで定義されています。このため、ソース中に以下の行を記述する必要があります。
#include "idldap.h"
特殊文字を含むDN
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、属性値の指定
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)へのパスを解決してください。
目次
索引
![]() ![]() |