[C API Toolkit] trackerサンプルをデバッグしてみた
はじめに
HCL C API Toolkit for Notes/Domino 12.0のsamples/admin/trackerディレクトリのサンプルを64ビット化しようと試みていたところ、ソースコードに問題を発見しました。
どこが問題?
TrackerDbStampNotes関数の5番目のパラメータが、tracker.hではHANDLE、tracker.cではDHANDLEと書いてあり、なぜか異なります。
きっかけは32ビットのtrackerを64ビットにしようと試行錯誤したときのことです...。32ビットでビルドしたときは、HANDLEとDHANDLEは結果的に同じ型のようで警告がでませんでした。64ビットでビルドを試行したところ、HANDLEとDHANDLEが異なる型のようで警告がでました。ヘルプをみると、ノーツ/ドミノ8.0以降はHANDLEのかわりにDHANDLEが使われるようです。
なにが正解?
正しいのはHANDLEなのかDHANDLEなのか確認するためにソースコードを追ってみます。該当の値はIDEntries関数に渡されていることがわかりました。
IDEntries関数とは何でしょうか。調べたところidtable.hに定義がありました。DHANDLEを受け取ると書かれていますので、正解はDHANDLEですね。
なるほど、つまりtracker.hのTrackerDbStampNotes関数の5番目のパラメータの型をDHANDLEへ修正すればよさそうですね。
おわりに
最初にとりかかるサンプルコードがすんなり動かないと、挫折して放り投げたくなります。私はC API Toolkitのためにあれこれして時間を費やしてしまいました。もう少し何とかなると嬉しいです。
いいなと思ったら応援しよう!
サポートいただければ、記事をもっと充実することができます