LabVIEW製作dll多重調用的問題

各位前輩
我現在遇到一個問題
在利用LabVIEW實作DLL時,
如果重複去調用它,他內部的資料似乎會互相影響。
如果我希望他在不同地方分別獨立調用時,內部資料能夠獨立存在,
該怎麼做?
謝謝。
下圖為dll內功能,利用shift register累加數值。
下圖為呼叫DLL的主程式,想分別獨立呼叫並獨自累加,兩個迴圈內的數值獨立不相關。
並附上程式壓縮檔,版本是2014的。
LabVIEW05.zipChrisLiu43297.4536689815
在LabVIEW的環境下,subVI可以設定為Reentrant(樓主有做此設定);如此,便可以自動分離global variable。
但是包成DLL,並沒有設定為Reentrant的選項,而且原本在VI設定的Reentrant也會被撤銷掉。(如果有,也煩請回覆告知)

或許可行的方法為:
  1. 把variable移出DLL:DLL內,只做邏輯計算(加減乘除),不把數值儲存在shift register裡面。由主程式(main VI)統一協調不同的variable的input/output。
  2. 把variable留在DLL內:同樣的DLL再複製一份,變成A.dll與B.dll。然後在主程式分別呼叫這兩個dll,以區隔variable。

應該沒有其他的方法了。(如果有也煩請告知)
Benjamin43296.9361111111

此附件為公司同事用C#寫的DLL,

差別我想只在這個DLL需要用callback去接收,因此我多做了兩個FGV分別接收累加結果。

以下再附上DLL及程式碼,

希望能夠用LabVIEW做出跟此C#DLL一樣多重調用的功能。

LabVIEW_C.zip

可否也順便附上C#的code呢? 謝謝~

好的,這是C#的檔案。
LabViewDll.zip