実行可能ファイルが指定のパスでもDLLを見つけることができません

更新しました Jul 24, 2026

使用製品

ソフトウェア

  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW Professional

問題

  • ライブラリ関数呼び出しノードでDLLを呼び出すVIがあります。開発環境では、DLLが正しく呼び出され、アプリケーションは期待どおりに動作します。実行可能ファイルをビルドすると、DLLを探すように求められます。プロンプトが表示されないようにするにはどうすればよいですか?
  • プロジェクト内に計測器用 DLL ファイルが含まれています。ビルド中に次の警告が表示されます。
    LabVIEW prevented a file name collision during the build. Duplicate file names cannot be copied to the same destination. You can rename files as part of the build process to avoid name conflicts
    アプリケーションのビルド完了後、Support Files ディレクトリ内に DLL ファイルが存在しません。

解決策

実行可能ファイルは、特定のディレクトリでのみDLLを検索します。 Windowsは、DLLの場所を下記の順番で検索します。

  1. 実行可能ファイルが実行されている現在のディレクトリ
  2. Windowsシステムディレクトリ(<Windows>\System32
  3. PATH環境変数で指定されたパス

デフォルトでは、LabVIEWはライブラリ関数呼び出しノードで呼び出されたほとんどのDLLを実行可能ファイルのデータディレクトリにコピーします。

 

計測器のDLL がプロジェクト内のフォルダに格納されている場合:
  1. Application Properties >> Destinations に移動します。
  2. LabVIEW プロジェクト内のフォルダと同じ名前のフォルダを作成します。
  3. Source File Settings を開きます。
  4. DLL を含むフォルダを選択します。
  5. DestinationSupport Directory に設定します。

追加情報

アプリケーションでuser32.dllまたは別のWinAPI DLLを使用していて、ディスク上のライブラリの場所を正しく指定していない場合、実行可能ファイルを実行しようとすると、次のエラーが発生することがあります。

エントリポイントが見つかりません: wcscat_sをダイナミックリンクライブラリntdll.dllに配置できませんでした。

共有ライブラリを呼び出す実行可能ファイルをビルドすると、LabVIEWはビルドのデータサポートディレクトリにDLLのローカルコピーを含めます。実行可能ファイルが実行されると、LabVIEWランタイムエンジンはまずこのディレクトリの共有ライブラリを検索します。これにより、ランタイムエンジンは、WinAPI DLLの間違ったバージョンを展開コンピューター上で呼び出してしまい、さまざまな問題を引き起こします。

システムディレクトリにあるWinAPI DLLを呼び出す場合は、次の3つのオプションがあります。
  • ライブラリ関数呼び出しノードにパスなしのDLLファイル名を入力します。これにより、アプリケーションをビルドするときに、データディレクトリにDLLのコピーが作成されることがなくなります。
  • WinAPI DLLをデータディレクトリから削除します。実行可能ファイルは、実行可能ファイルを起動するたびにDLLを検索します。これを修正するには、実行可能ファイルのVI検索パス(ツール>>オプション>>パス>>VI検索パス)に<Windows>\System32フォルダを追加します。
  • ライブラリ関数呼び出しノードのダイアログボックスでダイアグラムでパスを指定チェックボックスにチェックを入れ、共有ライブラリへのパスをブロックダイアグラムからパス入力をできるようにします。