Home
登入.會員服務
論壇.討論區
個人專案管理
LabVIEW轉檔
LabVIEW教學
LabVIEW技術專家專欄
技術專欄
資源中心
線上購物
資料代管
手機簡訊
LabSMS
LabEmail
尋找 專案人才
LabVIEW自動控制專案
關於LabVIEW360
聯絡我們

請教LabVIEW呼叫dll問題

各位先進,小弟手中有一台dso2904示波器,可透過usb將資料抓取進來,而廠商也附上dll檔與VB的範例程式.但是在執行視窗時發生錯誤



廠商所給的dll說明檔部分如下
open UIP(2048) array
open  UCP(1023, 1023 + 11, 6)  array 
1FindHardware
Call it at beginning when load program first, it can let program auto detect printer port address and model of dso scope.
parament
winversion
winversion = 0 "Win32s"
winversion = 1   "Windows 95,98,ME"
winversion = 2  "Windows NT,XP"
UIP  open UIP(2048) array
UCP open  UCP(1023, 1023 + 11, 6)  array
return
board_model
dso2902_128 = 27


 

參考VB說明與呼叫方式如下

VB程式範例說明
'FindHardware: 
Call it at beginning when load program first, it can let program auto detect printer port address and model of dso scope.
Declare Function FindHardware Lib "OUT.dll" (ByVal winversion As Long, ByRef board_model As Byte, ByRef UIP As Long, ByRef UCP As Byte) As Byte

 

VB程式碼呼叫方式

Find = FindHardware(winversion, board_model, UIP(0), UCP(0, 0, 0))


我在Call Library function設定如下

程式視窗

以上不知錯在何處...因為我試了很多方式都沒辦法呼叫成功..對於dll的呼叫方式雖有看過文章..但是還是試不出來...
希望知道的人可以幫我解惑...附上dll檔..謝謝...
OUT.rar

SamYang38630.9565277778

在Calling Conventions選項內,選擇Standard試試~

謝謝jimmy兄的回答

我試過還是不行...請問有其他方法嗎??

 

parament
winversion
winversion = 0 "Win32s"
winversion = 1   "Windows 95,98,ME"
winversion = 2  "Windows NT,XP"
UIP  open UIP(2048) array
UCP open  UCP(1023, 1023 + 11, 6)  array
return
board_model
dso2902_128 = 27

從這一段來看,你可以知道要使用findhardware這個function

你必須要設定4個參數,分別是winversion, UIP, UCP, 及board_model

WINVERSION及board_model設定為32bit的長整數就好

分別輸入winversion = 2(WinNT, WinXP), board_model= 27

UIP設定為array, UCP設定為string就好啦~

你可以參考看看啦~因為我沒機器可以試

test.vi

[QUOTE=SamYang]

各位先進,小弟手中有一台dso2904示波器,可透過usb將資料抓取進來,而廠商也附上dll檔與VB的範例程式.但是在執行視窗時發生錯誤



廠商所給的dll說明檔部分如下
open UIP(2048) array
open  UCP(1023, 1023 + 11, 6)  array 
1FindHardware
Call it at beginning when load program first, it can let program auto detect printer port address and model of dso scope.
parament
winversion
winversion = 0 "Win32s"
winversion = 1   "Windows 95,98,ME"
winversion = 2  "Windows NT,XP"
UIP  open UIP(2048) array
UCP open  UCP(1023, 1023 + 11, 6)  array
return
board_model
dso2902_128 = 27


 

參考VB說明與呼叫方式如下

VB程式範例說明
'FindHardware: 
Call it at beginning when load program first, it can let program auto detect printer port address and model of dso scope.
Declare Function FindHardware Lib "OUT.dll" (ByVal winversion As Long, ByRef board_model As Byte, ByRef UIP As Long, ByRef UCP As Byte) As Byte

 

VB程式碼呼叫方式

Find = FindHardware(winversion, board_model, UIP(0), UCP(0, 0, 0))


我在Call Library function設定如下

程式視窗

以上不知錯在何處...因為我試了很多方式都沒辦法呼叫成功..對於dll的呼叫方式雖有看過文章..但是還是試不出來...
希望知道的人可以幫我解惑...附上dll檔..謝謝...
OUT.rar

[/QUOTE]

樓主成功使用了?,

現在我同樣在使用一台dso2904a-g2
一直沒有辦法成功呼叫dll問題與樓主一樣,
請教有怎樣的方法成功呼叫?
謝謝

請問樓主有成功嗎?
小弟使用labview 2018 32bit windows10系統
有一台dso2904也是無法成功
請問辦法解決嗎?