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.

Reply via email to