|
メモ: この情報は、NI PharLap ETSのみに関連します。
ナショナルインスツルメンツでは、C言語ベースのシェアライブラリを使用するCVI Real-Timeの使用を推奨しています。これは、最適なコンパイルおよびリモートデバッグが可能なためです。シェアライブラリがC++言語ベースの場合は、VC6、VC7コンパイラを推奨します。他のコンパイラでは、コンパイルの際にランタイムコンポーネントが静的にリンクされている必要があり、大きなDLLになるとReal-Time(NI PharLap ETS)でサポートされなくなる場合があります。
DLLがWindows OS上で動作する場合、LabVIEW Real-Time(NI PharLap ETS)でも動作する可能性があります。ただし、作成されたコードがリアルタイムOSにあるWin32サブセットを含まない関数を呼び出す場合、コードはWindows上でデプロイに失敗します。たとえば、下記のようなエラーメッセージが発生する場合があります。
添付のユーティリティを使用することで、そのDLLで呼び出す関数がリアルタイムOS対応しているどうかを判断することができます。使用しているLabVIEW Real-Timeのバージョンと一致するユーティリティのバージョンをお使いください。
判断結果として、下記に示すようにGood、Stubbed、およびBadのカテゴリがあります。
LabWindows/CVIには、LabVIEW Real-Time環境用のDLLを作成する機能が搭載されています。DLL を作成する際は、Build » Target SettingsよりRun-Time Supportの項目でLabVIEW Real-Time Onlyを選択します。CVIは、不正な関数呼び出し、非対応の関数呼び出しを簡単に確認することができます。CVIがない場合は、LabVIEW Real-Timeで正しく実行するため下記に添付のユーティリティを使用して作成したDLLの対応状況を確認します。
LabVIEW Real-Timeで利用可能なDLLを作成方法については、関連リンクを参照してください。
メモ: このユーティリティが依存DLL(例: wsock32.dll)を要求する場合、リアルタイムターゲットまたは<National Instruments>/RT Imagesに存在するバージョンを必ず使用してみてください。これらのDLLは、同じ名前であるにもかかわらずWindows DLLと異なることがあります。
DLL Checkerの自動化
DLL Checkerバージョン2013以降は、引数を追加して実行することで、.dllを確認してその結果を含むログファイルの保存パス先に書き出すことができます。これにより、ユーザはLabVIEWのようなコマンドラインを呼び出すバッチスクリプトやプログラムを使用して、確認プロセスを自動化できます。
引数を渡す方法は、以下のとおりです。
-- -d "<path to dll>" -l "<path to log file>" -include "<path to DLL includes>"
下図は、LabVIEWで確認を自動化する例です。
-d "<dllのパス>" - 確認したいdllのパスを記入します。
-l "<ログファイルのパス>" - 確認した際の結果ログを保存するパスを記入します。引数で記入したログファイルのパスが存在しない場合、記入した名前を使用して新しいファイルが作成されます。
-include "<依存DLLのパス>" - DLL checkerはデフォルトで、-dフラグで記載したの-dメイン.dllのみ確認します。依存DLLを確認するには、-includeフラグを使用する必要があります。このフラグを使用して他のDLLのディレクトリを記入することで、DLL checkerはそれらも合わせて確認します。
DLL Checker 7.0.exe
DLL Checker 7.1.1.exe
DLL Checker 8.0.exe
DLL Checker 8.2.exe
DLL Checker 8.5.1.exe
DLL Checker 8.6.exe
DLL Checker 2009.exe
DLL Checker 2010.exe
DLL Checker 2011.exe
DLL Checker 2012.exe
DLL Checker 2013.exe
DLL Checker 2014.exe
|