我從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