Got it. Thanks. On Tue, Apr 4, 2017 at 11:05 AM Ian Lance Taylor <[email protected]> wrote:
> On Mon, Apr 3, 2017 at 7:20 PM, <[email protected]> wrote: > > The reason I think correct C type is used is because in the "winscard.h" > C > > header file, the expected type is LPSCARD_READERSTATE. > > And , in the golang cgo code, i.e. scard_unix.go, the argument 3 is cast > as > > (C.LPSCARD_READERSTATE). > > > > > > > > > > Further details (not sure if is useful): > > I found that in another C header file (pcsclite.h), LPSCARD_READERSTATE > is > > defined as: > > typedef struct > > { > > const char *szReader; > > void *pvUserData; > > DWORD dwCurrentState; > > DWORD dwEventState; > > DWORD cbAtr; > > unsigned char rgbAtr[MAX_ATR_SIZE]; > > } > > SCARD_READERSTATE, *LPSCARD_READERSTATE; > > > > > > And, on Windows , I could compile the code but failed on linux. > > The Windows code is different anyhow. The file that fails is not > compiled on Windows. > > Anyhow, I do see this now. Thanks for the report. Filed > https://golang.org/issue/19832. > > It's just a warning, so the immediate workaround is to simply ignore > the problem. > > Another workaround would be to modify the Go code to not call > `C.SCardGetStatusChange` directly, but to call a little function, > defined in the C comment, that takes a void* argument and calls the > real C function. > > Ian > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
