함수 포인터로 호출을 할때....
글쓴이: junteken / 작성시간: 화, 2005/05/24 - 2:25오후
SSL관련 소스를 보고 있는데요...
(MS의 CryptoAPI를 사용하고 있습니다.)
그중에서 SSPI관련해서 다음과 같은 구조체가 있습니다.
typedef struct SECURITY_FUNCTION_TABLE {
생략...
INITIALIZE_SECURITY_CONTEXT_FN InitializeSecurityContext;
후략....
} SecurityFunctionTable, *PSecurityFunctionTable, SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION;
이 구조체의 변수를 하나 선언해서 함수를 호출하는데
다음과 같이 멤버변수(함수포인터)뒤에 'A'라는 문자하나를 붙였습니다. 이렇게 되면 변수명이 달라져서 컴파일 error가 나야되는거
아닌가요?
PSecurityFunctionTable g_pSSPI; scRet = g_pSSPI->InitializeSecurityContextA(phCreds, phContext, NULL, dwSSPIFlags, 0, SECURITY_NATIVE_DREP, &InBuffer, 0, NULL, &OutBuffer, &dwSSPIOutFlags, &tsExpiry);
변수명뒤에 'A'글자가 왜들어갔는지 궁금합니다....
아시는분 답변좀 부탁드립니다.
감사합니다.
Forums:
win32의 함수들 중에 끝에 A로 끝나면 Ascii를 지원한다는 의미이
win32의 함수들 중에 끝에 A로 끝나면 Ascii를 지원한다는 의미이고 W로 끝나면 Unicode 문자를 지원한다는 의미로 알고 있는데
위의 경우는 함수가 Ascii 문자열을 지원한다는는 의미로 보이네요
Window API 는 모두 쌍으로 이루어져 있습니다. xxA 와 xxW
Window API 는 모두 쌍으로 이루어져 있습니다. xxA 와 xxW 입니다.
커널 내부에는 유니코드로 돌아가기 때문에 A는 Unicode 로의 변환을 한후에 실제 작업함수는 W계열을 부르게 됩니다.
^^ be cool ~
http://fromdj.pe.kr
InitializeSecurityContextA 가 define 되어 있
InitializeSecurityContextA 가 define 되어 있어서
전처리기에서 InitializeSecurityContext 로 변하고 추가로 다른
파라미터를 붙여주는거 아닌지 확인해 보세요.
댓글 달기