首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ERROR_INVALID_HANDLE在.NET应用程序中与winscard.dll

ERROR_INVALID_HANDLE在.NET应用程序中与winscard.dll
EN

Stack Overflow用户
提问于 2012-05-17 12:27:26
回答 1查看 3.7K关注 0票数 4

我正在创建一个.NET窗口服务,用于与智能卡读卡器通信。主组件是一个名为winscard.dll的Windows,我在.NET代码中使用它的DLLImport属性。在Windows 32位上一切正常工作,但当我在SCardTransmit. 7 x64上运行时,当调用0x6 ERROR_INVALID_HANDLE结果时,会得到更好的效果应用程序(作为命令行应用程序的服务)可以连接到读卡器,但不能从卡中读取任何内容。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-29 03:26:01

您有问题的SCardEstablishContext,它将返回,但也处理。使用IntPtr而不是Integer

代码语言:javascript
复制
Public Declare Function SCardEstablishContext Lib "Winscard.dll" (ByVal dwScope As Integer, _
                                                                      ByVal pvReserved1 As Integer, _
                                                                      ByVal pvReserved2 As Integer, _
                                                                      ByRef phContext As IntPtr) As Integer

phContext将在x64中存储有效值(Windows8、x64和Windows2008RDP测试)。当其他“整数”用作句柄时,也将其替换为"IntPtr“。

代码语言:javascript
复制
Public Declare Function SCardConnect Lib "Winscard.dll" Alias "SCardConnectA" (ByVal hContext As IntPtr, _
                                                                                   ByVal szReaderName As String, _
                                                                                   ByVal dwShareMode As Integer, _
                                                                                   ByVal dwPrefProtocol As Integer, _
                                                                                   ByRef hCard As IntPtr, _
                                                                                   ByRef ActiveProtocol As IntPtr) As Integer
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10635738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档