NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

DLLのString文字列引数の扱い

DLLをライブラリ関数呼び出しノードで呼び出しています。

関数の引数がString型の時、引数の取得がうまくいかず困っております。

LabVIEW側で、引数のタイプや変換などどのようにすれば良いでしょうか?

LabVIEWはVer7.1です。できましたらVer7.1の解決策があるとありがたいです。

 

VBで書くと、以下のようなことがしたいです。

 

----------------------------------------------------------------

Dim flg As Boolean     //戻り値
Dim msg As String     //引数 これが読めない


flg = func1(0, msg)      //関数func1  実行する関数
If flg = True Then
    If msg = "" Then
        ' 処理
    Else
        If InStr(msg, "ABC") <> 0 Then    //比較
            ' 処理
        Else
            ' 処理
        End If
    End If
Else
    ' 処理
End If

----------------------------------------------------------------

0 件の賞賛
メッセージ1/4
4,519件の閲覧回数

mm 様

いつもお世話になっております。
日本ナショナルインスツルメンツ技術部の藤枝です。

ライブラリ関数呼び出しノードの文字列取得の件ですが、使用しているDLLは何になりますでしょうか。
空の文字列が返ってくるということでしょうか。

お手数ですが以上の内容を一度ご確認頂き、ご不明な点がございましたら、ご連絡いただけますでしょうか。

宜しくお願いいたします。

-----------------------------------------------------------
  日本ナショナルインスツルメンツ株式会社
  技術部   藤枝 辰己

  サポート関連情報: http://www.ni.com/support/ja
  技術データベース: http://www.ni.com/kb
-----------------------------------------------------------

0 件の賞賛
メッセージ2/4
4,497件の閲覧回数

DLLについては一般に公開されていないもののようですので、ここでの公開可否は判断しかねるという状態です。(確認します)

 

現状の(うまくいっていない)VIを添付しますので、

とりあえずはLabVIEWでの文字列の扱い方などで間違いなどないかご教示いただけますと助かります。

(例えばライブラリ関数呼び出しノードの引数タイプなどの設定が正しいか、など)

 

文字列は、ある固定値が返ってくるはずなのですが、現状不定値(実行毎に異なる)が返ってきます。添付のVIですと、str2に返ってくる想定です。

 

情報が足りないかと思いますが、なにかヒントになるような回答が得られればと思います。よろしくお願いします。

0 件の賞賛
メッセージ3/4
4,490件の閲覧回数

使用しているDLLですが、HP上で公開されているものでしたのでご連絡します。

 

http://support2.yokogawa-digital.com/netimpress/software_info.aspx?id=AZ482

上記からaz482_304.exe をダウンロードいただき、解凍、インストールしてください。

C:\WINDOWS\system32に、AZ29x_control.dllが生成されます。

関数仕様の詳細は公開されていないようです。

 

このDLLをライブラリ関数呼び出しノードで呼び出しています。

問題となっている関数は、status_AZ29です。

この関数の仕様は最初の投稿のVBの場合の例で示したものになります。

 

LabVIEWの問題なのか、関数実行手順などの問題なのか、DLL自体の問題なのか、切り分けたく思っております。

LabVIEWの問題だとすると引数がStringとありますので、文字列の扱い(ライブラリ関数呼び出しノードの引数設定や文字列処理・表示など)の問題かと考えております。なにかお気づきの点などありませんでしょうか?

0 件の賞賛
メッセージ4/4
4,468件の閲覧回数