有关利用ms中的函数scardconnect()读手机sim卡的问题(很急!!)

showsion 2003-09-12 09:38:06
我想在delphi调用winscard.dll的函数scardconnect(),
但这个函数在msdn中的说明是vc++的.连入口参数类型都是
vc++自定义的.若通过一般的调用dll方法行不通?
请问那位高手帮帮我!!
...全文
214 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooling 2003-12-11
  • 打赏
  • 举报
回复
我开发了一个手机与计算机通信的软件(自定义数据格式、文本格式),已经应用于实际产品中--远程电表抄表.delphi和c实现的源代码都有.
如果有意要源码的(发现有很多同行都在找这样的资料),请跟我联系.

qq: 21156410
email: xyz@pinghuren.com
手机: 13819022330(只收短信)

不过这两天都不大上网
324swf 2003-09-26
  • 打赏
  • 举报
回复
关注
showsion 2003-09-26
  • 打赏
  • 举报
回复
继续求救
showsion 2003-09-15
  • 打赏
  • 举报
回复
继续求救
year2000bug 2003-09-12
  • 打赏
  • 举报
回复
up
lxpbuaa 2003-09-12
  • 打赏
  • 举报
回复
function SCardConnect(
hContext: THandle;
szReader: PChar;
dwShareMode,
dwPreferredProtocols: DWORD;
var phCard: THandle;
var pdwActiveProtocol: DWORD): Integer; external 'winscard.dll' name 'SCardConnect';

将C代码翻译过来就可以了啊。

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
最新的PCSC、CCID以及测试源码。 贴一段源码: LONG SCardEstablishContext(DWORD dwScope, /*@unused@*/ LPCVOID pvReserved1, /*@unused@*/ LPCVOID pvReserved2, LPSCARDCONTEXT phContext) { (void)pvReserved1; (void)pvReserved2; if (dwScope != SCARD_SCOPE_USER && dwScope != SCARD_SCOPE_TERMINAL && dwScope != SCARD_SCOPE_SYSTEM && dwScope != SCARD_SCOPE_GLOBAL) { *phContext = 0; return SCARD_E_INVALID_VALUE; } /* * Unique identifier for this server so that it can uniquely be * identified by clients and distinguished from others */ *phContext = (PCSCLITE_SVC_IDENTITY + SYS_RandomInt(1, 65535)); Log2(PCSC_LOG_DEBUG, "Establishing Context: 0x%X", *phContext); return SCARD_S_SUCCESS; } LONG SCardReleaseContext(SCARDCONTEXT hContext) { /* * Nothing to do here RPC layer will handle this */ Log2(PCSC_LOG_DEBUG, "Releasing Context: 0x%X", hContext); return SCARD_S_SUCCESS; } LONG SCardConnect(/*@unused@*/ SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol) { LONG rv; READER_CONTEXT * rContext = NULL; uint32_t readerState; (void)hContext; PROFILE_START *phCard = 0; if ((dwShareMode != SCARD_SHARE_DIRECT) && !(dwPreferredProtocols & SCARD_PROTOCOL_T0) && !(dwPreferredProtocols & SCARD_PROTOCOL_T1) && !(dwPreferredProtocols & SCARD_PROTOCOL_RAW) && !(dwPreferredProtocols & SCARD_PROTOCOL_ANY_OLD)) return SCARD_E_PROTO_MISMATCH; if (dwShareMode != SCARD_SHARE_EXCLUSIVE && dwShareMode != SCARD_SHARE_SHARED && dwShareMode != SCARD_SHARE_DIRECT) return SCARD_E_INVALID_VALUE; Log3(PCSC_LOG_DEBUG, "Attempting Connect to %s using protocol: %d", szReader, dwPreferredProtocols); rv = RFReaderInfo((LPSTR) szReader, &rContext); if (rv != SCARD_S_SUCCESS) { Log2(PCSC_LOG_ERROR, "Reader %s Not Found", szReader); return rv; } /* * Make sure the reader is working properly */ rv = RFCheckReaderStatus(rContext); if (rv != SCARD_S_SUCCESS) re

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧