線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3594
推到 Plurk!
推到 Facebook!

ic卡的寫入動作??

尚未結案
aamihcom
一般會員


發表:57
回覆:40
積分:19
註冊:2003-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-18 14:18:44 IP:61.59.xxx.xxx 未訂閱
這一段也是vc的語法,其中 m_edtData.GetWindowText((char*)szSendBuff, sizeof(szSendBuff));這一行是將畫面上的text元件的內容存到szSendBuff裡,以便寫入ic卡裡面.不過這要在bcb我試過改為 szSendBuff = Edit1->Text; 這樣不行.請問這行該如何修改?    然後這行if(Tran2To1((char*)szSendBuff,dwWriteBytes*2)==FALSE) 是驗証szSendBuff的長度是否正確,為何在szSendBuff前面要加((char*)在bcb是不是也是要加?    多謝先進幫忙我,不然我實在是解不出來!!^^,謝謝 /////////////////////////////////////////////////////////////// void CTestEZ4442Dlg::OnWrite() {         DWORD dwBlock, dwWriteBytes=16;         CString sOutput,s1;         BYTE szSendBuff[256];            memset(szSendBuff, 0, sizeof(szSendBuff));         dwBlock = m_cboBlockNum.GetCurSel();         m_edtData.GetWindowText((char*)szSendBuff, sizeof(szSendBuff));         if(dwBlock == 10)                 dwWriteBytes = 64;         if(Tran2To1((char*)szSendBuff,dwWriteBytes*2)==FALSE)         {                 AfxMessageBox("不合法的內容或長度不足32碼");                 return;         }         if(icWrite(dwBlock, szSendBuff, dwWriteBytes)==FALSE)                 AfxMessageBox("icWrite() fail");         else                 AfxMessageBox("Write success."); }    BOOL Tran2To1(char *szVerify, int nLeng) {         char szTemp[256];         int nSub = 0;         lstrcpy(szTemp, szVerify);         memset(szVerify, 0, nLeng);         for(int i=0;i='0' && szTemp[i]<='9') { if(i%2 == 0) szVerify[i/2-nSub] |= (szTemp[i]-'0') << 4; else szVerify[i/2-nSub] |= szTemp[i]-'0'; } else if(szTemp[i]>='A' && szTemp[i]<='F') { if(i%2 == 0) szVerify[i/2-nSub] |= (szTemp[i]-'A' 10) << 4; else szVerify[i/2-nSub] |= szTemp[i]-'A' 10; } else if(szTemp[i]>='a' && szTemp[i]<='f') { if(i%2 == 0) szVerify[i/2-nSub] |= (szTemp[i]-'a' 10) << 4; else szVerify[i/2-nSub] |= szTemp[i]-'a' 10; } else { return FALSE; } } return TRUE; }
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-18 14:52:08 IP:210.68.xxx.xxx 未訂閱
您好: 試試szSendBuff = Edit1->Text.c_str(); P.S:您的問題好像跟Win32 API無關耶< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~
aamihcom
一般會員


發表:57
回覆:40
積分:19
註冊:2003-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-18 20:50:09 IP:61.59.xxx.xxx 未訂閱
好像不行溜, 這個雖然不是完全跟api有關.....但還是要寫入api的... 歹勢~~
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-19 09:22:06 IP:210.243.xxx.xxx 未訂閱
這一段也是vc的語法,其中 m_edtData.GetWindowText((char*)szSendBuff, sizeof(szSendBuff));這一行是將畫面上的text元件的內容存到szSendBuff裡,以便寫入ic卡裡面.不過這要在bcb我試過改為 szSendBuff = Edit1->Text; 這樣不行.請問這行該如何修改? strcpy(szSendBuff, Edit1->Text.c_str()); 然後這行if(Tran2To1((char*)szSendBuff,dwWriteBytes*2)==FALSE) 是驗証szSendBuff的長度是否正確,為何在szSendBuff前面要加((char*)在bcb是不是也是要加? 是的, 在BCB最好也要加, 因為BOOL Tran2To1(char *szVerify, int nLeng)的第一個參數要的是char* 型態, 但szSendBuff 是一個BYTE陣列, 所有加上去告訴compiler把szSendBuff當成char* 來使用.(雖然我在BCB5裡不加也可以編過)
aamihcom
一般會員


發表:57
回覆:40
積分:19
註冊:2003-10-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-20 04:59:17 IP:61.59.xxx.xxx 未訂閱
小弟不才再請教這位先進大人,以下是在讀取時的動作,別人提供在vc的範例裡讀出來的值為11111111111111111111111111111111    而我根據您另一篇給我的方法 s1 = Format("%2x", ARRAYOFCONST((szRecvBuff[i]))); 結果讀出來是E8F512 0 0 0 0 0CCF512 011111111    我一連看了好幾個晚上實在看不出那裡出問題了        //=================這段是vc的語法(別人提供的)===================// void CTestEZ4442Dlg::OnRead() {         // TODO: Add your control notification handler code here         DWORD dwBlock, dwReadBytes=16;         CString sOutput,s1;         BYTE szRecvBuff[256];            memset(szRecvBuff, 0, sizeof(szRecvBuff));         dwBlock = m_cboBlockNum.GetCurSel();         if(dwBlock == 10)                 dwReadBytes = 64;         if(icRead(dwBlock, szRecvBuff, dwReadBytes)==FALSE)                 AfxMessageBox("icRead() fail");         for(DWORD i=0;i //==============================================================// //=================這段是bcb的語法(我寫的)======================// void __fastcall TForm1::Button5Click(TObject *Sender) { DWORD dwBlock; AnsiString sOutput = "", s1; BYTE szRecvBuff[16]; int dwReadBytes = 16; dwBlock = 0; if(icRead(0, szRecvBuff, dwReadBytes) == false) ShowMessage("icRead() fail"); for(DWORD i = 0; i < dwReadBytes; i++) { //szRecvBuff[i] // szRecvBuff[i]; s1 = Format("x", ARRAYOFCONST((szRecvBuff[i]))); sOutput += s1; } Edit1->Text = sOutput; } //==============================================================//
aamihcom
一般會員


發表:57
回覆:40
積分:19
註冊:2003-10-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-20 05:02:41 IP:61.59.xxx.xxx 未訂閱
不好意思,圖片上下相反了....上面是我的圖片下面才是別人的
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-21 10:49:50 IP:210.243.xxx.xxx 未訂閱
引言: 小弟不才再請教這位先進大人,以下是在讀取時的動作,別人提供在vc的範例裡讀出來的值為11111111111111111111111111111111 而我根據您另一篇給我的方法 s1 = Format("%2x", ARRAYOFCONST((szRecvBuff[i]))); 結果讀出來是E8F512 0 0 0 0 0CCF512 011111111 我一連看了好幾個晚上實在看不出那裡出問題了 //=================這段是vc的語法(別人提供的)===================// void CTestEZ4442Dlg::OnRead() { // TODO: Add your control notification handler code here DWORD dwBlock, dwReadBytes=16; CString sOutput,s1; BYTE szRecvBuff[256]; memset(szRecvBuff, 0, sizeof(szRecvBuff)); dwBlock = m_cboBlockNum.GetCurSel(); if(dwBlock == 10) dwReadBytes = 64; if(icRead(dwBlock, szRecvBuff, dwReadBytes)==FALSE) AfxMessageBox("icRead() fail"); for(DWORD i=0;i //==============================================================// //=================這段是bcb的語法(我寫的)======================// void __fastcall TForm1::Button5Click(TObject *Sender) { DWORD dwBlock; AnsiString sOutput = "", s1; BYTE szRecvBuff[16]; int dwReadBytes = 16; dwBlock = 0; if(icRead(0, szRecvBuff, dwReadBytes) == false) ShowMessage("icRead() fail"); for(DWORD i = 0; i < dwReadBytes; i++) { //szRecvBuff[i] // szRecvBuff[i]; s1 = Format("x", ARRAYOFCONST((szRecvBuff[i]))); sOutput += s1; } Edit1->Text = sOutput; } //==============================================================//
你漏了紅字部份, 如果加上去後結果還是一樣那就是你讀出來的資料是錯的, 建議用debugger trace看看讀出的結果是否全為1.
void CTestEZ4442Dlg::OnRead()
{
        // TODO: Add your control notification handler code here
        DWORD dwBlock, dwReadBytes=16;
        CString sOutput,s1;
        BYTE szRecvBuff[256];

        memset(szRecvBuff, 0, sizeof(szRecvBuff));
        dwBlock = m_cboBlockNum.GetCurSel();
        if(dwBlock == 10)
                dwReadBytes = 64;            if(icRead(dwBlock, szRecvBuff, dwReadBytes)==FALSE)
                AfxMessageBox("icRead() fail");
        for(DWORD i=0;i
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-21 14:35:07 IP:61.218.xxx.xxx 未訂閱
請問你是用何廠商的IC卡與讀卡機其DLL的名稱? 謝謝
aamihcom
一般會員


發表:57
回覆:40
積分:19
註冊:2003-10-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-01-21 16:17:54 IP:61.59.xxx.xxx 未訂閱
EZ_SLE4442.dll /////////////////////////////////就上面這台,外面很普遍的機種 EZ_SLE4442.dll,這是用到的dll名稱
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-01-21 16:31:23 IP:61.218.xxx.xxx 未訂閱
引言: EZ_SLE4442.dll /////////////////////////////////就上面這台,外面很普遍的機種 EZ_SLE4442.dll,這是用到的dll名稱
我也是用此台,但是沒有EZ_SLE4442.dll,是不是要另外購買? 謝謝
aamihcom
一般會員


發表:57
回覆:40
積分:19
註冊:2003-10-02

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-01-23 04:52:38 IP:61.59.xxx.xxx 未訂閱
那是朋友提供的~~你要嗎可以給你~~^^
kcin
一般會員


發表:0
回覆:18
積分:3
註冊:2005-01-21

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-01-23 22:57:58 IP:220.130.xxx.xxx 未訂閱
s1 = Format("x", ARRAYOFCONST((szRecvBuff[i]))); sOutput = s1; 這個等號應該就是問題了
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-01-24 08:50:21 IP:61.218.xxx.xxx 未訂閱
好啊,非常謝謝你 是否可寄到shing222@1111.com.tw 謝謝
引言: 那是朋友提供的~~你要嗎可以給你~~^^
aamihcom
一般會員


發表:57
回覆:40
積分:19
註冊:2003-10-02

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-01-24 23:41:33 IP:61.59.xxx.xxx 未訂閱
我把整個project寄給你了,您試試吧....
pkhoward
一般會員


發表:1
回覆:5
積分:1
註冊:2004-05-17

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-01-26 10:23:02 IP:210.241.xxx.xxx 未訂閱
引言: 我把整個project寄給你了,您試試吧....
請問一下可以也寄給我ㄧ份嗎?hs520@hotmail.com 最近在研究IC卡讀卡機也是跟您一樣,但是就是不知 道如何著手,請幫助小弟謝謝
pkhoward
一般會員


發表:1
回覆:5
積分:1
註冊:2004-05-17

發送簡訊給我
#16 引用回覆 回覆 發表時間:2005-01-26 10:44:49 IP:210.241.xxx.xxx 未訂閱
請問我要如何著手開始存取IC卡上面的資料 還有請問一下有相關的API可以用嗎? 我是在微軟網站找到這些資訊,但我希望能有更多 的資料,謝謝各位先進 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/ibytebuffer.asp 發表人 - pkhoward 於 2005/01/26 10:50:17
maueking2
一般會員


發表:6
回覆:5
積分:2
註冊:2004-07-05

發送簡訊給我
#17 引用回覆 回覆 發表時間:2005-02-22 00:30:59 IP:218.166.xxx.xxx 未訂閱
有本書叫智慧卡技術實務 好像關於晶片卡只有這本,可以去天隴問問 如果你要從事這方面的研究建議你上SUN的JAVACARD&IBM JCOP的網站 現在開放的好像只有Global Platform,MULTOS好像有綁規格 除非你是玩Nective Card(就是那個 castle出的) 一般只是Base 在ISO 7816 上玩APDU Command IBM有免費的Certificate Tool Kit(打JCOP 看看應該有) 各家ChipCard的APDU Command如果不是Base在EMV SPEC的話 舉凡Loyalty,Coupon之類的各嘉出的應該都不同, 如果你要Per AP進去就要取得ENC&MAC Key(在過 Preissurance後)做certificate還有一個KEK Key 理論上都不難 ^ ^",就看您怎麼去應用
brook
資深會員


發表:57
回覆:323
積分:371
註冊:2002-07-12

發送簡訊給我
#18 引用回覆 回覆 發表時間:2005-02-22 13:44:20 IP:218.160.xxx.xxx 未訂閱
aamihcom: 不好意思,可以也寄給我ㄧ份EZ_SLE4442.dll嗎? 剛好我的IC卡讀卡機也是跟您一樣. brooktsai@yahoo.com
lialexes
一般會員


發表:0
回覆:1
積分:0
註冊:2004-10-19

發送簡訊給我
#19 引用回覆 回覆 發表時間:2005-02-24 18:53:11 IP:61.229.xxx.xxx 未訂閱
發表於 - 2005/01/26 : 10:23:02 -------------------------------------------------------------------------------- 引言: -------------------------------------------------------------------------------- 我把整個project寄給你了,您試試吧.... -------------------------------------------------------------------------------- 對不起大大,請問一下是否可以也寄給我ㄧ份嗎?alex@verygo.com.tw 我最近也是在研究如何應用IC卡讀卡機但是一直不得其門也入,也請您請幫幫小弟,謝謝您 ^_^~~
umhibuki
一般會員


發表:0
回覆:2
積分:0
註冊:2004-02-12

發送簡訊給我
#20 引用回覆 回覆 發表時間:2005-03-26 03:35:33 IP:59.104.xxx.xxx 未訂閱
是否可以也給我一份.....lungjay@yahoo.com.tw 感謝大大....小弟目前想做使用IC卡來做認證的程式..想參考一下
pokemf
一般會員


發表:5
回覆:12
積分:3
註冊:2002-05-24

發送簡訊給我
#21 引用回覆 回覆 發表時間:2005-05-24 09:15:14 IP:210.192.xxx.xxx 未訂閱
aamihcom: 麻煩你,可以也寄給我ㄧ份EZ_SLE4442.dll嗎? 剛好我的IC卡讀卡機也是跟您一樣. pokemf@ms28.hinet.net
DemonChang
一般會員


發表:0
回覆:1
積分:0
註冊:2005-05-19

發送簡訊給我
#22 引用回覆 回覆 發表時間:2005-05-24 19:49:35 IP:220.135.xxx.xxx 未訂閱
你好, 不知道你有沒有用過任何可以擷取由pc送到reader再送到卡片的apdu訊息內容的程式, 想要了解一下各家所送的apdu長什麼樣子, 謝謝
jimichou
一般會員


發表:0
回覆:1
積分:0
註冊:2004-12-03

發送簡訊給我
#23 引用回覆 回覆 發表時間:2005-05-27 11:58:23 IP:60.248.xxx.xxx 未訂閱
您好,是否也可以請給我一份EZ_SLE4442.dll,謝謝! 萬分感謝! 請寄到我的 jimichou@yahoo.com
spencerkuo
一般會員


發表:21
回覆:34
積分:11
註冊:2003-08-15

發送簡訊給我
#24 引用回覆 回覆 發表時間:2005-06-03 15:12:37 IP:221.169.xxx.xxx 未訂閱
可否也寄給我ㄧ份呢 謝謝 computer18@hotmail.com
anson603
一般會員


發表:3
回覆:6
積分:1
註冊:2005-05-30

發送簡訊給我
#25 引用回覆 回覆 發表時間:2005-06-05 00:38:59 IP:218.168.xxx.xxx 未訂閱
即然大家都要,那我也要,也請您施捨一下囉,謝謝 anson603@yahoo.com.tw
demon1042001
一般會員


發表:14
回覆:19
積分:6
註冊:2002-06-12

發送簡訊給我
#26 引用回覆 回覆 發表時間:2005-09-07 13:57:19 IP:210.202.xxx.xxx 未訂閱
aamihcom 大大.. 雖然時間過很久了 但我最近也在研究讀卡機 能請你MAIL一份給我嗎 demon1042001@yahoo.com.tw 感謝
casper97
一般會員


發表:13
回覆:18
積分:11
註冊:2004-12-30

發送簡訊給我
#27 引用回覆 回覆 發表時間:2006-08-09 14:39:58 IP:203.74.xxx.xxx 未訂閱

aamihcom 憭批之..

憟賢暺銋嚗

雿臭誑暻餌拐 Mail 蝯行嚗

casper@taco-e.com.tw

系統時間:2024-07-05 3:50:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!