私はLabviewで使用するためにdllをC++で書いています。 DLLがコンパイルされ、Labviewでインポートできます。しかし、関数を使用しようとすると、次のようなメッセージが表示されます。「ダミー関数()のライブラリ関数呼び出しノードでエラー1097が発生しましたLabVIEW:ライブラリ関数呼び出しノードによって呼び出された外部コード内で例外が発生しました。 LabVIEWのメモリが破損しています。作業を新しい場所に保存し、LabVIEWを再起動してください。後でLabviewで使用するためにdllでグローバル変数を使用する
私はdllでグローバル変数を使用していると思われます。本当?そして、どうすればそれを避けることができますか?
さらに詳しい情報が必要です。あなたはdummyfunction()のコードとLabviewからの呼び出し方法を表示できますか? – MarcoM
LabVIEWが呼び出す呼び出し規約が、DLLのコンパイル方法と一致することを確認しましたか? DLLがロードされたままである限り、グローバル変数を使用することは問題ではありません。使用しているコードを共有してください。 – Alden
返信いただきありがとうございます。私のdllには4つの関数があり、4つの関数すべてが1つの変数にアクセスする必要があります。私はそれをパラメータとして渡すことができません。なぜなら、それはintまたはLongまたはstringではないため、Labviewはそれを受け入れます(その型は別のHeaderファイルで宣言されています)。私はLabviewがそれを実行しているときにどのようにグローバルが格納されているのかわかりません –