我熟悉編寫DLL文件,可以在LabVIEW中調用,但我很好奇,什麼正確的方式IMAQ圖像傳遞到DLL可能。以下是我發現的一種方法 - 我也使用類似的機制將IMAQ Image實例從我的DLL發佈到事件結構。的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*
類型的指針地址。
這是做到這一點的最好辦法,還是有更好的辦法?
我能看到的一個問題是轉換節點正在給U32。如果你在64位可能會有問題... – CharlesB 2012-02-16 16:02:45
是的,我注意到 - 這是因爲我將函數調用的參數定義爲一個「指針大小的整數」函數。由於我在32位環境下運行,這並不直接影響我 - 它很好奇,儘管32位輸出正好如此,因爲我運行的是NI Vision 2011,它自稱有64位支持。看上面的集羣輸出,這似乎並不完全是真的...... – hatboyzero 2012-02-16 16:41:46
好吧,我很確定,在64位環境中,它提供了一個64位指針 – CharlesB 2012-02-16 16:47:47