윈도우 2000 환경에서 리더기를 테스트 하는 부분입니다.
SCardConnectA 펑션을 사용해서 결과값을 받아오는데
win2000에서는 정상값=0 을 리턴을 하는데여
win98일때에는 똑같은 소스인데 리턴값을 못받아 오면서 먹통이 됩니다.
//이부분이 펑션 부분입니다.
function SCardConnectA
(
hContext : LongInt;
szReader : string;
dwShareMode : LongInt;
dwPreferredProtocols : LongInt;
Var phCard : LongInt;
Var pdwActiveProtocol : LongInt
) : LongInt; stdcall; external 'winscard.dll';
//이 부분부터는 소스중에 ScardConnectA 펑션을 사용하는 소스입니다.
lngRet := SCardConnectA(RDHwnd, readername, SCARD_SHARE_SHARED, SCARD_PROTOCOL_Tx, CDHwnd, lngAP);=>요부분에서 win2000에서는 정상값인 0 값이 리턴되고요 98에서는 완전먹통이 되거든여
if lngRet <> SCARD_S_SUCCESS Then begin
sTemp := ErrCode_Str(inttohex(lngRet, 2));
result := stemp;
result := '1';
exit;
end;
위와 같은 문제가 왜 일어나는지 좀 알려주시면 정말 감사하겠습니다.
98 이하는 pc/sc 환경에 관련된 컴포넌트를 설치 해야 합니다.
Microsoft Smart Card Base Components 라고
프로그램 추가 삭제에 설치되어 있습니다.
확인 해보세요.. 스마트 카드 단말기 드라이버를 삭제 하시구
다시 설치 해 보세요.. 드라이버 설치 되면서. 같이 설치 되거든요.