吉田と申します。 はじめまして。
さっそくなのですが、外部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バイト指定済み