請問VB結構體的宣告,如何使用LV設計?

請問各位大大!

小弟最近研究API的呼叫,但是遇到要使用"結構體"的資料型態就不知道如何下手..如VB宣告結構體如下:

Public Structure LUID
  Dim LowPart As Integer
  Dim HighPart As Integer
End Structure

Public Structure LUID_AND_ATTRIBUTES
  Dim pLuid As LUID
  Dim Attributes As Integer
End Structure

Public Structure TOKEN_PRIVILEGES
  Dim PrivilegeCount As Integer
  Dim Privileges As LUID_AND_ATTRIBUTES
End Structure

請問以上的宣告要使用哪一個VI來設計?感謝!

Tomado38156.3082638889

LabVIEW應該沒有stureture的用法,就算是用VB,其實我也並不常看到有人用structure,是否是API一 定要先定義好變數的型別?

哇~不過有些API的確在C或VB中都使用結構傳遞的耶!!就是呼叫以下的API中使用到的....

Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long

                  ^^^^^^^^^^^^這個宣告,在配合以上結構使用....

如果這樣都做不到~哪Labview真的就讓我有點失望了!可能需要再使用C來封裝成DLL給LabView Call了....cry

Tomado38157.3987731481

原來這樣算是結構傳遞喔![](upload://fwLdedPZdXLjZyCWa7zyAqECATM.gif),抱歉,不是很懂

不過應該是要封成DLL再call吧

看其他人有沒有什麼意見囉

終於找到答案了...幫自己回答吧...

要设置一个指向结构的指针,在定义连接 动态连接库的对话框中,&#35774 ;置参数的Type为Adapt to Type.然后把与指针指向的结构相同的Cluster连接到这&# 20010;参数的端口上就行了。

![](upload://lTkBiKYocE5J6EqRejuxVFrtSxf.gif)

那句話是從哪裡找到的啊,我看不太懂,能否請你稍微再解釋的詳細一點

這句話是從大陸網站上所搜尋到的,已經足夠點醒我囉~~

內容是說如果Call DLL or API遇到是結構參數傳遞的話,在設置參數的選項要選"Adapt to Type",而結構參數就使用相同結構設計的Cluster連接。

不知道我這樣寫,你看不看的懂~~![](upload://aeTYlqEc1qXvs9Jv3ju6pnq9wZt.gif)

 

懂~,不過不是很明確,因為這部份我沒接觸,但是有個概念總是比較好,又學了一點東西了