표준 PKCS # 11을 사용하여 스마트 카드에 액세스 할 응용 프로그램을 개발 중입니다. 현재이 애플리케이션은 Ubuntu와 OS X 모두에서 잘 작동하고 있습니다. 이제는 Windows로 이식 할 예정이지만 런타임에 링크 된 pkcs # 11 라이브러리에서 함수를 호출 할 때마다 "액세스 위반"예외가 발생합니다 .DLL에서 C++ 액세스 위반 함수 호출
다음은 내 코드의 SSCCE를 재현하려고 시도한 것입니다 (예외가 발생한 위치는 주석으로 식별됩니다).
응용 프로그램을 디버깅 할 때 "CK_FUNCTION_LIST_PTR functions"구조가 유효합니다.
이 예외의 원인을 아는 사람이 있습니까?
Visual Studio 2010 Ultimate 및 Windows XP SP3을 사용하고 있습니다.
감사합니다.
(PS : 나는 이미 라이브러리에서 "GetProcAddress를"를 사용하여 기능 "C_Initialize"을로드하려고하고 일한)
--- 편집
CK_FUNCTION_LIST 정의
struct CK_FUNCTION_LIST {
CK_VERSION version; /* Cryptoki version */
/* Pile all the function pointers into the CK_FUNCTION_LIST. */
/* pkcs11f.h has all the information about the Cryptoki
* function prototypes. */
#include "pkcs11f.h"
};
전체 헤더 : 해당 이미지에서 http://www.rsa.com/rsalabs/node.asp?id=2133
'functions-> C_Initialize' (즉, 함수 주소)의 값은 무엇입니까? NULL 또는 다른 잘못된 값입니까? –
이 이미지를 확인하십시오 https://www.dropbox.com/s/ix5itwskakd0sku/exec.JPG 감사합니다 –