|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Bruce Lin
註冊時間: 2004-03-28 文章: 24 來自: Taiwan,Taipei
第 1 樓
|
發表於: 星期一 四月 13, 2015 9:45 am 文章主題: 求助,dll函數的使用方式求教 |
|
|
小弟近期買了一台設備,廠商有附dll的說明及VB、C#的範例,但沒有VFP範例,小弟使用VFP6.0 ,因以前沒用過dll,所以不知如何呼叫,請各位前輩指導,謝謝
目前碰到的問題,是不知將設備裡面的記錄取出,dll中的函數說明如下:
********************************
GetGeneralLogDataStr
[Definition]
VARIANT_BOOL GetGeneralLogDataStr( [in] long dwMachineNumber, [out] long*
dwEnrollNumber, [out] long* dwVerifyMode, [out] long* dwInOutMode, [out] BSTR
*TimeStr)
[Usage]
Read attendance records one by one from the internal buffer. Before using this function, you
can use ReadAllGLogData or ReadGeneralLogData to read attendance records from the
device and write them into the internal buffer of the PC. Each time this function is executed,
the pointer points to the next attendance record. The difference between this function and
GetGeneralLogData is the returned time type.
[Parameter]
dwMachineNumber
Device number
dwEnrollNumber
Pointer pointing to a long variable. The value is the user ID of the received
attendance record.
dwVerifyMode
Pointer pointing to a long variable. The value is the verification mode of the received
attendance record. The specific values are the same as those of
GetGeneralLogData.
dwInOutMode
Pointer pointing to a long variable. The value is the attendance state of the reserved
attendance record. The specific values are the same as those of
GetGeneralLogData.
TimeStr
Pointer pointing to a BSTR variable. The value is the attendance time of the received
attendance record.
[Return Value]
Return True if it is successful, or return False.
[Related Function]
GetGeneralLogData
*******************
VB 將記錄取出來的寫法
*******************
While axCZKEM1.GetGeneralLogDataStr(iMachineNumber, idwEnrollNumber, idwVerifyMode, idwInOutMode, sTime)
iGLCount += 1
lvItem = lvLogs.Items.Add(iGLCount.ToString())
lvItem.SubItems.Add(idwEnrollNumber.ToString())
lvItem.SubItems.Add(idwVerifyMode.ToString())
lvItem.SubItems.Add(idwInOutMode.ToString())
lvItem.SubItems.Add(sTime)
End While
************************************
小弟用VFP,已可連接設備,但接下就不知該如何處理
************************************
axCZKEM1 = CreateObject("zkemkeeper.ZKEM.1")
aa = AxCZKEM1.Connect_Net("192.168.X.X","4370")
local idwEnrollNumber As Integer
local idwVerifyMode As Integer
local idwInOutMode As Integer
iMachineNumber =1
sTime = ""
*******************
以上煩請各位前輩協助,謝謝 _________________ = BRUCE LIN = ^_^ |
|
回頂端 |
|
|
Bruce Lin
註冊時間: 2004-03-28 文章: 24 來自: Taiwan,Taipei
第 2 樓
|
發表於: 星期二 四月 14, 2015 4:56 pm 文章主題: |
|
|
小弟參考VB的寫法,寫出以下的CODE,但取出來的值,都是空白的.... 是哪邊有寫錯嗎? 煩請前輩協助,感激不盡。
************************************
axCZKEM1 = CreateObject("zkemkeeper.ZKEM.1")
aa = AxCZKEM1.Connect_Net("192.168.X.X","4370")
local idwEnrollNumber As Integer
local idwVerifyMode As Integer
local idwInOutMode As Integer
iMachineNumber =1
sTime = ""
if aa=.T.
do while AxCZKEM1.GetGeneralLogDataStr(iMachineNumber, idwEnrollNumber, idwVerifyMode, idwInOutMode, sTime)=.T.
lvItem =idwEnrollNumber+" "+idwVerifyMode+" "+idwInOutMode+" "+sTime
? lvItem
enddo
axCZKEM1.Disconnect()
endif
************************************ _________________ = BRUCE LIN = ^_^ |
|
回頂端 |
|
|
oldbb
註冊時間: 2007-02-28 文章: 83
第 3 樓
|
發表於: 星期三 四月 15, 2015 7:57 am 文章主題: |
|
|
** VARIANT_BOOL GetGeneralLogDataStr(
** [in] long dwMachineNumber,
** [out] long* dwEnrollNumber,
** [out] long* dwVerifyMode,
** [out] long* dwInOutMode,
** [out] BSTR *TimeStr)
iMachineNumber = 1
idwEnrollNumber = 0
idwVerifyMode = 0
idwInOutMode = 0
sTime = SPACE(254)
** do while AxCZKEM1.GetGeneralLogDataStr(iMachineNumber, @idwEnrollNumber, @idwVerifyMode, @idwInOutMode, @sTime)==1
do while AxCZKEM1.GetGeneralLogDataStr(iMachineNumber, @idwEnrollNumber, @idwVerifyMode, @idwInOutMode, @sTime)
lvItem = TRANSFORM(idwEnrollNumber) + " ";
+ TRANSFORM(idwVerifyMode) + " ";
+ TRANSFORM(idwInOutMode) + " ";
+ STRCONV(LEFT(sTime, 10), 15) && 暫解釋sTime(原型是BSTR)看看再處理
? lvItem
enddo |
|
回頂端 |
|
|
Bruce Lin
註冊時間: 2004-03-28 文章: 24 來自: Taiwan,Taipei
第 4 樓
|
發表於: 星期三 四月 15, 2015 8:36 am 文章主題: |
|
|
oldbb 寫到: | ** VARIANT_BOOL GetGeneralLogDataStr(
** [in] long dwMachineNumber,
** [out] long* dwEnrollNumber,
** [out] long* dwVerifyMode,
** [out] long* dwInOutMode,
** [out] BSTR *TimeStr)
iMachineNumber = 1
idwEnrollNumber = 0
idwVerifyMode = 0
idwInOutMode = 0
sTime = SPACE(254)
** do while AxCZKEM1.GetGeneralLogDataStr(iMachineNumber, @idwEnrollNumber, @idwVerifyMode, @idwInOutMode, @sTime)==1
do while AxCZKEM1.GetGeneralLogDataStr(iMachineNumber, @idwEnrollNumber, @idwVerifyMode, @idwInOutMode, @sTime)
lvItem = TRANSFORM(idwEnrollNumber) + " ";
+ TRANSFORM(idwVerifyMode) + " ";
+ TRANSFORM(idwInOutMode) + " ";
+ STRCONV(LEFT(sTime, 10), 15) && 暫解釋sTime(原型是BSTR)看看再處理
? lvItem
enddo |
vItem = TRANSFORM(idwEnrollNumber) + " ";
+ TRANSFORM(idwVerifyMode) + " ";
+ TRANSFORM(idwInOutMode) + " ";
+ sTime
sTime取出是字元型態,可以不用轉換
終於搞定了!! 太感謝你了~~~~ ^^
另小弟不解 @idwEnrollNumber, @idwVerifyMode, @idwInOutMode, @sTime 為何都要加一個@號呢?
測試結果,少加@號,值就無法取出 _________________ = BRUCE LIN = ^_^
Bruce Lin 在 星期三 四月 15, 2015 8:55 am 作了第 1 次修改 |
|
回頂端 |
|
|
oldbb
註冊時間: 2007-02-28 文章: 83
第 5 樓
|
發表於: 星期三 四月 15, 2015 8:54 am 文章主題: |
|
|
** VARIANT_BOOL GetGeneralLogDataStr(
** [in] long dwMachineNumber,
** [out] long* dwEnrollNumber,
** [out] long* dwVerifyMode,
** [out] long* dwInOutMode,
** [out] BSTR *TimeStr)
@idwEnrollNumber, @idwVerifyMode, @idwInOutMode, @sTime
接口說明是輸出型[out],VFP用@表示Pointer |
|
回頂端 |
|
|
Bruce Lin
註冊時間: 2004-03-28 文章: 24 來自: Taiwan,Taipei
第 6 樓
|
發表於: 星期三 四月 15, 2015 8:58 am 文章主題: |
|
|
oldbb 寫到: | ** VARIANT_BOOL GetGeneralLogDataStr(
** [in] long dwMachineNumber,
** [out] long* dwEnrollNumber,
** [out] long* dwVerifyMode,
** [out] long* dwInOutMode,
** [out] BSTR *TimeStr)
@idwEnrollNumber, @idwVerifyMode, @idwInOutMode, @sTime
接口說明是輸出型[out],VFP用@表示Pointer |
原來如此,再次感謝解惑~ ^^ _________________ = BRUCE LIN = ^_^ |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|