我从C#调用winscard.dll方法,并且在调试模式下一切正常。问题我得到的是在释放模式SCardEstablishContext未在发布模式下设置上下文指针
我的呼叫建立上下文
[DllImport("winscard.dll")]
public static extern int SCardEstablishContext(int dwScope, int pvReserved1, int pvReserved2, ref int phContext);
在我的测试应用程序时,我把这个pntContext变量似乎得到在调试模式设置正确。但是,在发布模式下它没有被设置。但奇怪的是,返回码仍然是0(成功)。
所以,我只是想知道可能会导致这种情况的是什么情况,或者我可能做错什么其他事情?
P.S. 我还检查的一件事是编译平台设置为任何CPU。我正在尝试更换平台,并且当我将x86作为平台和发布模式时,它就会开始工作。这种奇怪的行为,为什么它然后在调试模式下工作?
你在使用什么操作系统?我已经在Win7和win8上使用了这个api与anyCpu编译,我没有注意到你遇到的问题。 无论如何,我使用此语法 昏暗hContext作为IntPtr的= Marshal.AllocHGlobal(Marshal.SizeOf(mContext)) mLastError = SCardEstablishContext(Scope.User,IntPtr.Zero,IntPtr.Zero,hContext) – AlexF 2014-09-01 08:36:14