DLLから値を取得できないのはなぜですか?



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題: DLLにリファレンスとして値を受け渡したいのですが、LabVIEWを使用すると値を取得する事ができず、エラーも発生しません。Visual Basicでは問題なく使用できます。なぜこのような事が起こるのでしょうか?

解決策: DLLから値を取得するには、いくつかの注意点があります。
下記を参考に設定をご確認ください:

  1. 関数のプロトタイプ宣言での型がDLLの型と一致しているかどうか確認してください。多くの場合、関数はint 型の戻り値ですが、void型として呼ばれている場合があります。LabVIEWの戻り値はデフォルトでvoid型なので、関数の戻り値がint型の場合は正常な値を取得できません。


  2. 2つ目の確認項目としては、DLLからの受け渡しにリファレンスと値のどちらを用いているか確認してください。DLLの関数はポインターとして戻り値をアサインする("リファレンスの受け渡し")ので値を用いて入力値を受け渡している場合は正常に動作しません。


  3. 最後にLabVIEWの仕様上、ライブラリ関数呼び出しノードの出力を見るために表示器を作成する必要があります。値はVIから受け渡されていないので、VIの出力に表示器が接続されていなければ更新された値を見る事ができません。



関連リンク: KnowledgeBase 2G9GDCOH: LabVIEW Searching for a DLL Used in the Call Library Function Node

添付:





報告日時: 11/13/2004
最終更新日: 01/17/2005
ドキュメントID: 3FCAE43F