共有ライブラリをインポートウィザードのトラブルシューティング
- 更新日2025-08-27
- 4分で読める
以下のとおり、共有ライブラリをインポートウィザードの使用中に一般的な問題が発生する可能性があります。推奨される解決方法では問題が解消されない場合、共有ライブラリをデバッグする必要があります。
ウィザードで関数を検索できない場合
共有ライブラリをインポートウィザードの変換する関数を選択ページにある関数リストに、指定した共有ライブラリにあるすべての関数が一覧表示されます。ウィザードがヘッダファイルの解析を行った後も関数が全く表示されない場合は、共有ライブラリのパスが正しいかどうか、およびライブラリに関数が含まれているかどうかを確認します。
ウィザードでインポートできない関数が検索された場合
共有ライブラリをインポートウィザードには指定した共有ライブラリファイルにあるすべての関数が一覧表示されますが、ウィザードを使用してヘッダファイルから正しく解析できる関数のみをインポートすることができます。変換する関数を選択ページにある関数リストで関数を選択すると表示される警告は、起こり得る問題を判断する場合に役立ちます。ヘッダファイルにすべての必要な関数の宣言が含まれているかどうかを確認します。各関数の宣言には、呼び出し規約、戻り値のデータタイプ、および定義されたパラメータがなければなりません。ヘッダファイルを修正するには、ファイルを直接編集するか、またはウィザードのインクルードパスとプリプロセッサ定義を構成ページで記号の定義を追加します。
WIN32を以下のとおり定義する場合、ヘッダファイルの以下のサンプルコードはfunctionAのみをコンパイルします。
#ifdef WIN32 int functionA(int para); #endif
LabVIEWでfunctionAをインポートしても、ヘッダファイルでWIN32を定義しなかった場合、ヘッダファイルを直接編集してWIN32を定義するか、または共有ライブラリをインポートウィザードでWIN32を定義します。ウィザードでWIN32を定義するには、インクルードパスとプリプロセッサ定義を構成ページにあるプリプロセッサ定義テキストボックスでWIN32と入力します。
以下のサンプルコードはヘッダファイルで別の関数を表示します。この場合、NIAPIを定義しなかったため、LabVIEWではこの記号を認識しません。
NIAPI int functionA(intpara);
LabVIEWでこの関数をインポートする場合、プリプロセッサ定義テキストボックスにNIAPI=_stdcallという文字列を追加してNIAPIを定義できます。
ウィザードで宣言済みの関数を検索できない場合
関数リストには、共有ライブラリファイルで表示される関数のみが一覧表示されます。ヘッダファイルに、共有ライブラリにない関数の宣言が含まれている場合、ウィザードではこれらの関数は一覧表示されません。共有ライブラリファイルに存在するかどうかに関わらずヘッダファイルで宣言されたすべての関数を表示するには、ウィザードの共有ライブラリとヘッダファイルを選択ページにあるローカルマシンにない共有ライブラリファイルを指定チェックボックスをオンにします。これにより、変換する関数を選択ページに戻る場合、ウィザードにヘッダファイルで宣言されたすべての関数が表示されます。ラッパーVIを生成する前に、このチェックボックスがオフになっているかどうかを確認してください。
ウィザードでネストされたヘッダファイルを検索できない場合
指定したヘッダファイルにネストされたヘッダファイルが含まれている場合、ウィザードのインクルードパスとプリプロセッサ定義を構成ページにあるインクルードパステキストボックスにネストされたファイルのパスを指定する必要があります。ネストされたヘッダファイルのインクルードパスを指定しない場合、ウィザードではヘッダファイルを正しく解析することができません。