我可以在 LabVIEW 2009 或更早的版本使用我的 DLL ,但是在 LabVIEW 2010 或更新的版本會導致當機 (crash)



主要軟體:
主要軟體版本: 1.0
主要軟體修正版本: N/A
次要軟體: N/A

問題: 為什麼我可以在 LabVIEW 2009 或更早的版本使用我的 DLL ,但是在 LabVIEW 2010 或更新的版本會導致當機 (crash)

解答: 在 Call Library Function Node 中的 Maximum error checking ,可以用來檢查呼叫協定 (calling convention) ,或其他有問題處的匹配錯誤狀況。在 LabVIEW 8.2 到 2009 間,選擇了錯誤的呼叫協定, LabVIEW 會自動選擇到正確的呼叫協定,並輸出錯誤 Error 1517 or 1097 occurred at Call Library Function Node。

在 LabVIEW 2010 以及之後的版本,由於編譯器的優化,在呼叫協定的錯誤上就不再做偵測。如果錯誤的呼叫協定被使用了,那麼有可能導致 LabVIEW 程式當機。

如果你的 DLL 以前可以在比較早的 LabVIEW 版本上運行,但是在 LabVIEW 2010 或更新的版本崩潰,您可以在原本的 LabVIEW 版本上設定 error handling 至 maximum,看是否 Call Library Function Node輸出錯誤碼。若有輸出錯誤碼,那麼就代表呼叫協定 (calling convention) 並沒有正確的選擇,您可能需要手動更改呼叫協定,或著是在您的設定中做其他的更動。相關如何設定呼叫協定的說明可以參考 LabVIEW Help 中的 “Configuring the Call Library Function Node”。



相關連結:
LabVIEW 2010 Known Issues LabVIEW 2009 Help: Configuring the Call Library Function Node LabVIEW 2013 Help: Configuring the Call Library Function Node

附加檔案:





報告日期: 05/21/2010
最後更新: 05/16/2016
文件偏號: 59KB14WI