エラー 1097: ライブラリ関数呼び出しノードでエラーが発生する

更新しました Apr 18, 2026

使用製品

ソフトウェア

  • LabVIEW

オペレーティング・システム

  • Windows
  • PharLap

問題

  • 私の LabVIEW コードは外部 DLL を参照しています。プログラムを実行すると、「ライブラリ関数ノードでエラー 1097 が発生しました」というメッセージが表示されますが、プログラムの実行は停止しません。
  • LabVIEW でエラー 1097 をトラブルシューティングするには、どのようにすればよいですか?
  • ライブラリ関数呼び出しノードでエラー 1097 が発生する原因は何ですか?
     

LabVIEWエラー 1097 (Hex 0x449):


考えられる理由:
LabVIEW: ライブラリ関数呼び出しノードで呼び出された外部コードで例外が起きました。例外によってLabVIEWのメモリが破損した可能性があります。新しい場所にファイルを保存し、LabVIEWを再び起動してください。

 


 

解決策

LabVIEW エラー 1097 は、LabVIEW が処理できない例外が DLL 内で発生し、その例外が LabVIEW に渡された場合に発生することがよくあります。主な原因は次の 2 つです。

  1. ライブラリ関数呼び出しノードのパラメータのデータ型や配列形式が正しく設定されていません
  2. プログラム内でメモリが正しく管理されていません

 

トラブルシューティング手順:

  • LabVIEW 以外の環境で DLL が正常に動作することを確認し、ライブラリ関数呼び出しノードのパラメータのデータ型式が、DLL 関数で想定されているデータ型と一致するように設定されていることを確認してください。
  • DLL が 32 ビット(または 64 ビット)アプリケーション専用に設計されている場合があります。その場合、LabVIEWの32 ビット版(または 64 ビット版)で呼び出すことで、エラーが解消される可能性があります。
  • エラー 1097 は、ライブラリ関数呼び出しノードで不適切な呼び出し規約(calling convention)を使用していることにより、プログラムがメモリを正しく扱えていない場合もあります。
  • stdcall(WINAPI) 規約では DLL 側がメモリ使用を管理することが前提となり、C 呼び出し規約(C calling convention)では LabVIEW 側がメモリ使用を管理することが前提となります。stdcall(WINAPI)規約を不適切に使用すると、未処理のメモリが発生する可能性があります。呼び出し規約は、ノードをダブルクリックして設定画面を開き、選択を変更することで構成できます(以下の画像を参照)。

追加情報

配列タイプのノードパラメータに配列データポインタ を選択した場合、DLL側の引数は2つ必要になります。配列そのものと、その配列のサイズ(要素数)です。
しかし、配列サイズを受け取る引数が存在しない場合は、配列ハンドルを選択してください。