第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

VB2005操作D8讀卡器

VB2005操作D8讀卡器

慕斯王 2018-12-06 20:49:10
我使用vb2005調(diào)用德卡提供的dll讀取卡內(nèi)信息時(shí)遇到了2個(gè)問(wèn)題一是在讀某些塊地址時(shí),會(huì)報(bào)“嘗試讀取或?qū)懭胧鼙Wo(hù)的內(nèi)存。這通常指示其他內(nèi)存已損壞?!倍钱?dāng)返回到應(yīng)答碼為讀取成功時(shí),卻接收不到任何數(shù)據(jù)德卡提供的API里dll中讀取卡內(nèi)信息的函數(shù)定義為: int dc_read(int icdev,unsigned char _Adr,unsigned char *_Data); ? ? 這里_Data就是返回?cái)?shù)據(jù)的地方我在vb2005中聲明的函數(shù)為 ? Private Declare Function dc_read Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal _adr As Char, ByRef dataBuf As String) As Integer 自定義讀卡的函數(shù)為: '讀取單程票數(shù)據(jù) Public Function ReadTkt() As Boolean Dim st As Integer '讀取結(jié)果 ReadTkt = False frmCardReader.Log("開(kāi)始讀單程票數(shù)據(jù)...") '單程票共占用48字節(jié) Try '讀發(fā)行區(qū),8字節(jié) st = dc_read(icdev, ChrW(4), dataBuf) If (st <> 0) Then ' 讀卡失敗 frmCardReader.Log("讀取單程票(發(fā)行區(qū))信息失敗") Exit Function End If '讀發(fā)行區(qū)信息成功,截取dataBuf,轉(zhuǎn)換為需要的數(shù)據(jù) frmCardReader.Log("讀取單程票(發(fā)行區(qū))信息成功:" & dataBuf) Catch ex As Exception ReadTkt = False frmCardReader.Log(ex.Message) MsgBox("讀單程票失敗,錯(cuò)誤代碼:[" & st & "]") End Try End Function ? ? 望各位看到帖子的朋友費(fèi)費(fèi)心,很急,多謝大家了
查看完整描述

4 回答

?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

ByRef dataBuf As String

還得指定 CharSet.

char* 在 C++ 是指以 /0 結(jié)尾的字符串,也可以表示 char[] 數(shù)組(定長(zhǎng)字符串).

因?yàn)镃++中沒(méi)有 byte,所以字節(jié)值用 char 表示.

如果以string 讀取無(wú)法成功,就說(shuō)明 char* 代表的是定長(zhǎng)字符串,那么你就需要用C#中的byte[] 來(lái)接收定長(zhǎng)字符串?dāng)?shù)組,然后再轉(zhuǎn)換成string.

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

還是讀不出來(lái),塊地址_Adr應(yīng)該定義為什么類型,按照文檔上說(shuō)MF卡的4-15數(shù)據(jù)塊都是可讀寫(xiě)的。但為什么要報(bào)“嘗試讀取或?qū)懭胧鼙Wo(hù)的內(nèi)存”的錯(cuò)或是返回應(yīng)答碼正確,但_Data卻沒(méi)有值呢
查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊

@誠(chéng)實(shí)小郎君:如果 C++ 的函數(shù)原形定義為 char *_Data ,那么就是要求調(diào)用方傳入有效的char[]數(shù)組,同時(shí)函數(shù)原形還應(yīng)該提供一個(gè)入?yún)?int size,該傳入?yún)?shù)指示你傳入的char[]的長(zhǎng)度,你防止函數(shù)在char*++時(shí)越界。如果函數(shù)原形定義為char& _Data ,那就是告訴你,它會(huì)為你分配一個(gè)char[] 數(shù)組,同時(shí)它還要提供一個(gè)傳出參數(shù),int& size,告訴你它分配了多大的char數(shù)組,以防止你使用時(shí)越界。
查看完整回答
反對(duì) 回復(fù) 2019-01-21
  • 4 回答
  • 0 關(guān)注
  • 448 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)