Dll-tips

提供:Dev Guides
移動先:案内検索

DLL-ヒント

DLLを作成する際には、次のヒントに留意してください-

  • 適切な呼び出し規則(Cまたはstdcall)を使用します。
  • 関数に渡される引数の正しい順序に注意してください。
  • 関数に直接渡される引数を使用して、配列のサイズを変更したり、文字列を連結したりしないでください。 渡すパラメータはLabVIEWデータであることに注意してください。 配列または文字列のサイズを変更すると、LabVIEWメモリに保存されている他のデータが上書きされてクラッシュする可能性があります。 LabVIEW配列ハンドルまたはLabVIEW文字列ハンドルを渡し、Visual C ++コンパイラまたはSymantecコンパイラを使用してDLLをコンパイルしている場合、配列のサイズを変更したり、文字列を連結できます。
  • 関数に文字列を渡すときに、渡す文字列の正しいタイプを選択します。 CまたはPascalまたはLabVIEW文字列ハンドル。
  • パスカル文字列の長さは255文字に制限されています。
  • C文字列はNULLで終了します。 DLL関数が数値データをバイナリ文字列形式で返す場合(たとえば、GPIBまたはシリアルポート経由)、データ文字列の一部としてNULL値を返す場合があります。 このような場合、短い(8ビット)整数の配列を渡すことが最も信頼できます。
  • データの配列または文字列を使用している場合、LabVIEWハンドルとして渡さない限り、関数によってバッファに配置された結果を保持するのに十分な大きさのバッファまたは配列を常に渡します。その場合、CINを使用してサイズを変更できますVisual C ++またはSymantecコンパイラの下で機能します。
  • _stdcallを使用している場合は、モジュール定義ファイルのEXPORTSセクションにDLL関数をリストします。
  • モジュール定義ファイルのEXPORTSセクションで他のアプリケーションが呼び出すDLL関数をリストするか、関数宣言に_declspec(dllexport)キーワードを含めます。
  • C ++コンパイラを使用する場合、名前のマングリングを防ぐために、ヘッダーファイルでextern .C。\ {}ステートメントを使用して関数をエクスポートします。
  • 独自のDLLを作成している場合、DLLが別のアプリケーションによってメモリにロードされている間はDLLを再コンパイルしないでください。 DLLを再コンパイルする前に、その特定のDLLを使用しているすべてのアプリケーションがメモリからアンロードされていることを確認してください。 DLL自体がメモリにロードされないようにします。 これを忘れて、コンパイラが警告しない場合、正しく再構築できない可能性があります。
  • 別のプログラムでDLLをテストして、関数(およびDLL)が正しく動作することを確認します。 コンパイラのデバッガ、またはDLL内の関数を呼び出すことができる単純なCプログラムでテストすることは、DLLまたはLabVIEW関連の問題の可能性を特定するのに役立ちます。