如何從dll中回傳多個值

 請問我在我在我自己建構的dll檔中具有數個回傳值
但是在LabVIEW中的dll設定輸出只能有一個回傳值
通常抓到的都是在最後傳回的那個數值
比如說我在VC中寫

float function(float analog1 ,float  analog2)
{
......
return ( analog1, analog2)
}


通常抓到都是analog2的數值
請問要如何設定才可以同時輸出多個回傳值

如果你的call library function中的設定無誤,

但是卻無法得到你要的結果。

看看你寫的vc裡頭,是否有去定義DLL,

一般好像是加_declspec (dllexport)作為DLL的輸出keyword

試看看吧! 

 

[QUOTE=yah1217]

如果你的call library function中的設定無誤,

但是卻無法得到你要的結果。

看看你寫的vc裡頭,是否有去定義DLL,

一般好像是加_declspec (dllexport)作為DLL的輸出keyword

試看看吧! 

 

[/QUOTE]

 

這個我之前有定義了

沒有定義LabVIEW是找不到輸出的函數的

整個我應該是寫這樣

_declspec (dllexport) float function(float analog1 ,float  analog2)

.......

float function(float analog1 ,float  analog2)
{
......
return ( analog1, analog2)
}

宣告要輸出的函數是哪個

然後後面是函數的描述

最後我想要回傳兩個數值

但是LabVIEW裡的DLL用的VI回傳值只有一個return type輸出點

這樣好像只能輸出一個值

因為我自己撰寫的DLL裡有用到驅動USB的功能

如果同時放兩個怕會打架

我想我知道你的問題了~

在LabVIEW的DLL設定那邊

一般都是預設一個return value,

但是在那個視窗的右邊有一個add a parameter,按這裡新增

一個參數並將名稱改成float analog1,再新增一次並改成float analog2

然後對他們分別設定輸出值的format設定,

至於一開始預設的return value,你可以不用管他啦!

設定好之後,在vi上就可以設定兩個indicator

這樣就可以

[QUOTE=yah1217]

我想我知道你的問題了~

在LabVIEW的DLL設定那邊

一般都是預設一個return value,

但是在那個視窗的右邊有一個add a parameter,按這裡新增

一個參數並將名稱改成float analog1,再新增一次並改成float analog2

然後對他們分別設定輸出值的format設定,

至於一開始預設的return value,你可以不用管他啦!

設定好之後,在vi上就可以設定兩個indicator

這樣就可以

[/QUOTE]

我之前就是這樣做

新增節點好像只能輸入數值到dll裡

但是若是從DLL裡收回數值需要由第一個return value才能收回數值

但是我的回傳值有兩個

應該是要有兩個return value的節點

但是如果把新增的變數設定為return value一樣是沒有辦法的

DLL這個VI後面新增的東西好像名稱和自己撰寫的DLL沒有關係

只和宣告時的變數順序有關

是嗎?新增節點當然可已有輸入跟輸出

你看要不要把你的程式給貼上來

這樣大家討論起來也比較方便