2016-07-07 91 views
0

我已經在C++中編寫了一個dll文件,以便在Labview中使用它。該DLL被編譯,我可以在Labview中導入它。但是當我嘗試在其中使用函數時,它告訴我這一點:「dummyfunction()中調用庫函數節點發生錯誤1097 LabVIEW:調用庫函數節點調用的外部代碼中發生異常。損壞了LabVIEW內存,將任何工作保存到新的位置並重新啓動LabVIEW。「在一個dll中使用全局變量以便在Labview中稍後使用

我懷疑是因爲我在dll中使用全局變量。真的嗎?我如何避免這種情況?

+3

需要更多細節。你能展示dummyfunction()的代碼以及你如何從Labview調用它嗎? – MarcoM

+2

您是否確定LabVIEW預期的調用約定與DLL的編譯方式相匹配?只要DLL保持加載狀態,使用全局變量就不會成爲問題。請分享您使用的代碼。 – Alden

+0

感謝您的回覆。我的dll包含4個函數,並且所有4個函數都必須訪問一個變量。我無法將它作爲參數傳遞,因爲它不是int或Long或字符串,而Labview只接受(該類型在另一個Header文件中聲明)。我不確定Labview在運行時如何存儲全局數據 –

回答

0

如果構建dll的調試版本並在Labview代碼中使用該版本,則可以設置斷點並逐步執行dll代碼。我會在您調用的第一個函數中設置一個斷點,然後逐步執行dll代碼,直到找到異常發生的位置,然後解決該問題。

我只使用Microsoft Visual Studio來做到這一點,並且您必須指定Labview.exe作爲可執行文件。

相關問題