LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

外部DLLを用いて文字列型の2次元を取得したい

吉田と申します。 はじめまして。
さっそくなのですが、外部DLLからデータを取得し、
LabVIEWでデータ変換を行いたいと考えています。

戻り値としてほしいのは、文字列型の2次元配列なのですが、
DLLの中で文字列操作の手順がいまいちよく分かりません。

サンプルプログラムを見ても、コンパイルが通らずお手上げです。
コンパイルが通らなかったサンプルプログラムは、
Call DLL.vi内のLStrHandle 文字列で表示されるソースです。
[strncpy:1番目の引数を'unsigned char[1]'から'char *'に変換できません。]
と出ます。

LabVIEWから作ったインターフェース
/* Call Library source file */

#include "extcode.h"

/* Typedefs */

typedef struct {
       long dimSize;
       LStrHandle elt[1];
       } TD1;
typedef TD1 **TD1Hdl;

short testFunc(char arg1[], TD1Hdl *arg2);

short testFunc(char arg1[], TD1Hdl *arg2)
       {

       /* Insert code here */

       }
例えば
「このプログラムにarg1で受け取った文字列を、
arg2の全ての要素に対して入れる(要素数は変動)」
処理をしたい場合どのように書けば実行できるのでしょうか?

お手数ですが分かる方がいましたら教えていただけますよう、
よろしくお願いいたします。

以下環境です。
LabVIEW:8.2.1
DLL作成:MS VC++ 6.0
インクルードでcintoolsディレクトリ指定済み
リンクでlabview.lib指定済み
使用するランタイムライブラリ マルチスレッド(DLL)指定済み
構造体アライメント1バイト指定済み
0 Kudos
Message 1 of 2
(3,468 Views)

Smiley HappySmiley IndifferentSmiley MadSmiley SadSmiley SurprisedSmiley TongueSmiley Very HappySmiley Wink

Say it in English.

- Partha ( CLD until Oct 2027 🙂 )
Message 2 of 2
(3,442 Views)