私はLabVIEWから呼び出せるDLLの作成に精通していますが、IMAQイメージをDLLに渡す正しい方法については興味があります。ここで私が見つけた1つの方法 - 私は同様のメカニズムを使用して、DLLからEvent StructureへIMAQ Imageインスタンスを投稿します。LabVIEW、C++ DLL、およびIMAQイメージ
注クラスタから/への画像インスタンスを変換するノードが、それぞれ、${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb
に配置され、そしてIMAQ Image Datatype to Image Cluster.vi
とIMAQ Image Cluster to Image Datatype.vi
命名されていること。作成されるクラスタは、イメージ名とC/C++のImage*
型へのポインタアドレスを表す整数値で構成されます。
これを行うにはこれが最善の方法ですか、それとも良い方法がありますか?
私は、次のコードを使用して、クラスタ内のすべての画像情報(ポインタ、サイズなど)を入れて、異なるアプローチを使用
私が見ることができる1つの問題は、変換ノードがU32を与えていることです。あなたが64ビットであれば、問題があるかもしれません... – CharlesB
ええ、私は気づきました - それはDLLへの関数呼び出しのパラメータを 'Pointer Sized Integer'と定義しているので起こります。私は32ビット環境で動作しているため、直接的な影響はありません。私はNI Vision 2011を実行しているので、32ビットの出力が発生することはありますが、興味があります。 64ビットをサポートしています。上記のクラスタからの出力を見ると、それは完全に真実ではないようです... – hatboyzero
64ビット環境では64ビットのポインタが得られると確信しています – CharlesB