dllの呼び出しでWindowsハンドルが引数だったり、戻り値だったりすることが結構ある。大抵、変数名はhnd。この型が何になるのかよくわからなかった。
今回、これまで使っていたリコーのifxapi32.dllからifxapi64.dllに変更するのに、64bit版Accessでhndの型を指定しなければならなかった。
リコーの64bitサンプルプログラムはCかC++かC#かよくわからないのだが、hndはLongになっていた。64bit版のLongが何ビットになるのかこれまた、よく知らない。やってみた結果、Access64bit版ではLongLong型でうまくいった。hndは8バイト(64bit)ということのようだ。
現状ではAccessの32bit版と64版を併用していて、32bit版ではLongLong型は定義できないので、Dimする時はコンパイル定数VBA7を使って、64bit版ではLongLong型、32bit版ではLong型としておかなければならない。
今回、これまで使っていたリコーのifxapi32.dllからifxapi64.dllに変更するのに、64bit版Accessでhndの型を指定しなければならなかった。
リコーの64bitサンプルプログラムはCかC++かC#かよくわからないのだが、hndはLongになっていた。64bit版のLongが何ビットになるのかこれまた、よく知らない。やってみた結果、Access64bit版ではLongLong型でうまくいった。hndは8バイト(64bit)ということのようだ。
現状ではAccessの32bit版と64版を併用していて、32bit版ではLongLong型は定義できないので、Dimする時はコンパイル定数VBA7を使って、64bit版ではLongLong型、32bit版ではLong型としておかなければならない。
※コメント投稿者のブログIDはブログ作成者のみに通知されます