2016-07-07 49 views
0

私はLabviewで使用するためにdllをC++で書いています。 DLLがコンパイルされ、Labviewでインポートできます。しかし、関数を使用しようとすると、次のようなメッセージが表示されます。「ダミー関数()のライブラリ関数呼び出しノードでエラー1097が発生しましたLabVIEW:ライブラリ関数呼び出しノードによって呼び出された外部コード内で例外が発生しました。 LabVIEWのメモリが破損しています。作業を新しい場所に保存し、LabVIEWを再起動してください。後でLabviewで使用するためにdllでグローバル変数を使用する

私はdllでグローバル変数を使用していると思われます。本当?そして、どうすればそれを避けることができますか?

+3

さらに詳しい情報が必要です。あなたはdummyfunction()のコードとLabviewからの呼び出し方法を表示できますか? – MarcoM

+2

LabVIEWが呼び出す呼び出し規約が、DLLのコンパイル方法と一致することを確認しましたか? DLLがロードされたままである限り、グローバル変数を使用することは問題ではありません。使用しているコードを共有してください。 – Alden

+0

返信いただきありがとうございます。私のdllには4つの関数があり、4つの関数すべてが1つの変数にアクセスする必要があります。私はそれをパラメータとして渡すことができません。なぜなら、それはintまたはLongまたはstringではないため、Labviewはそれを受け入れます(その型は別のHeaderファイルで宣言されています)。私はLabviewがそれを実行しているときにどのようにグローバルが格納されているのかわかりません –

答えて

0

dllのデバッグバージョンを作成し、そのバージョンをLabviewコードで使用する場合は、ブレークポイントを設定してdllコードをステップ実行できます。あなたが呼び出す最初の関数でブレークポイントを設定し、例外がどこで発生しているのかを見つけてその問題を解決するまで、dllコードをステップ実行します。

私はこれを行うためにMicrosoft Visual Studioを使用しており、実行可能ファイルとしてLabview.exeを指定する必要があります。

関連する問題