[C API Toolkit] Visual Studio 2020でサンプルをビルドしてみた(32ビット)
はじめに
HCL C API Toolkit for Notes/Domino 12.0のsamples/admin/trackerディレクトリにあるサンプルを、Microsoft Visual Studio 2020でビルドしてみます。
trackerはDominoサーバーのnotes.iniのNSF_HOOKS=行にDLLファイル名を追加します。ノーツの文書が開かれたり更新されたりするときにDLLが呼び出されます。
今のWindowsサーバーは64bitが多いとおもいますが、サンプルは32bitです。とりあえず32bitのままビルドしてみましょう。
Visual Studioでプロジェクトを作成
Visual Studioを開き、右下の『コードなしで続行』を選びます。
メニュー-[ファイル]-[新規作成]-[既存のコードからプロジェクトを作成]を選びます。
ウィザード画面が開きます。作成するプロジェクトの種類から『Visual C++』を選び、次へ進みます。
プロジェクトファイルの場所に、C API Toolkitのsamples/admin/trackerディレクトリを入力し、プロジェクト名は先頭にnを付けて『ntracker』と入力し、次へ進みます。
プロジェクトのビルド方法で、Visual Studioを使用するを選びます。プロジェクトの種類は『ダイナミックリンクライブラリ(DLL)プロジェクト』を選び、次へ進みます。
デバッグ構成と、リリースの構成の設定は、空欄のまま次へ進み、プロジェクトの作成を完了します。
プロジェクトのプロパティを設定
構成にはリリースとデバッグがあり、プラットフォームには32ビットと64ビットがあります。この組み合わせの数だけ設定があるため、まとめられるものはまとめて設定しましょう。
最初にソリューションエクスプローラーでプロジェクト名を選びます(つまづきやすいところです)。何も選ばないとソリューション名が選ばれたままになり、設定項目が大幅に異なります。
次に、メニューから[プロジェクト]-[プロパティ]を選びます。
すべての構成・すべてのプラットフォーム
画面上部の構成を『すべての構成』へ、プラットフォームを『すべてのプラットフォーム』にします。
次に[構成プロパティ]-[全般]-[構成の種類]で『ダイナミックライブラリ (.dll)』を選びます。
[構成プロパティ]-[C/C++]-[全般](または[すべてのオプション])-[追加のインクルードディレクトリ]にC API Toolkitのincludeディレクトリを追加します。
最初なので詳しく説明します。右側の下向き▼を選択します。
[<編集…>]を選びます。
一番上の空欄を選びます。
C API Toolkitのincludeディレクトリを入力または貼り付けます。
Enterキーを押すと[評価された値]欄に転記されます。
OKボタンを押して戻ります。
[追加のインクルードディレクトリ]にC API Toolkitのincludeディレクトリが入りました。
[構成プロパティ]-[リンカー]-[入力](または[すべてのオプション])-[追加の依存ファイル]へ、今回は『notes.lib』を追加します。
追加する依存ファイルは次のように調べます。C API Toolkitのsamples/admin/trackerディレクトリにある『mswin32.mak』ファイルをメモ帳で開きます。[user32.lib]の前に『notes.lib』だけがありますね、今回は『notes.lib』だけを追加します。
すべての構成・Win32
画面上部の構成を『すべての構成』へ、プラットフォームを『Win32』へ変更します。
[構成プロパティ[-[リンカー]-[全般](または[すべてのオプション])-[追加のライブラリディレクトリ]にC API Toolkitのlib\mswin32ディレクトリを追加します。
[構成プロパティ]-[C/C++]-[コマンドライン]-[追加のオプション]に『-DW32』を入力します。
画面下部の『OK』を押してプロパティページを閉じます。
ソリューションのビルド
画面上部を『Debug』『x86』にします。
メニューからビルド-『ソリューションのビルド』を選びます。
『ビルド: 1 正常終了』となったらOKです。
画面上部を『Release』『x86』に変更して、同様にソリューションをビルドします。これも『ビルド: 1 正常終了』となったらOKです。
動かしてみる
今ビルドしたntracker.dllをドミノサーバーのプログラムディレクトリに置きましょう。
C API Toolkitのnotedataディレクトリにあるtracker.nsfとtrashcan.nsfはドミノサーバーのデータディレクトリに置きます。
通常はドミノサーバーのプログラムディレクトリにあるnotes.iniを更新するためにドミノサーバーを止めます。notes.iniに次の3行を追記します。
NSF_HOOKS=TRACKER
TRACKER_TARGET=TRACKER
TRACKER_TRASHCAN=TRASHCAN
さいごに
64ビットのサーバーには64ビットのDLLが必要ですが、実験としてドミノサーバーを動かしてみましょう。
あれ?サーバーは異常終了しません…。64ビットのサーバーに32ビットのDLLを合わせると無視されるようです。
サポートいただければ、記事をもっと充実することができます