음.. 흐음...
char *의 포인터를 넘겨줘야 하는데 에러가 난다 머지?
char *mszReaders = NULL; DWORD dwReaderLen = SCARD_AUTOALLOCATE; rv = SCardListReaders(hContext, (LPCSTR)NULL, &mszReaders, &dwReaderLen); |
그래서 강제로 하면 이렇게 에러가 나는데
error: cannot convert ‘char**’ to ‘LPSTR’ {aka ‘char*’} 103 | rv = SCardListReaders(hContext, (LPCSTR)NULL, &mszReaders, &dwReaderLen); | ^~~~~~~~~~~ | | | char** |
아래처럼 변수를 미리 선언해서 자동할당 하지 않게 하거나
char mszReaders[255]; DWORD dwReaderLen = sizeof(mszReaders); // SCARD_AUTOALLOCATE; rv = SCardListReaders(hContext, (LPCSTR)NULL, mszReaders, &dwReaderLen); |
아래 처럼 강제 형변환을 해주어서 2중 포인터가 아닌 것으로 속여주면 된다.
char *mszReaders = NULL; DWORD dwReaderLen = SCARD_AUTOALLOCATE; rv = SCardListReaders(hContext, NULL, (char*)&mszReaders, &dwReaderLen); |
해결은 되었는데 해결책 같은 느낌이 하나도 안드네..
'하드웨어 > rfid_nfc_smartcard' 카테고리의 다른 글
NDEF 데이터 읽기 (0) | 2025.03.17 |
---|---|
ntag 213, 215 그리고 13.25MHz CUID 카드 (0) | 2025.03.17 |
SCardListReadersA 함수(winscard.h) (0) | 2025.03.17 |
NTAG (0) | 2025.03.12 |
NDEF 읽기 (0) | 2025.03.11 |