문제

Winsock 커널을 사용하여 rtlstringcbprintf 을 사용하려고합니다.나는 NTSTRSAFE.H를 포함했지만 컴파일러는 나에게 오류를 제공합니다

Error 4 error C3861: 'RtlStringCbPrintf': identifier not found  c:\bw\epic_sl\musslcomm\musslcomm\commmessenger\socketx.h   124 1   CommMessenger
.

rtlstringcbprintfa 또는 rtlstringcbprintfw 을 사용하면 컴파일됩니다.일반 버전을 사용할 수없는 이유는 무엇입니까?NTSTRSAFE.H에서 찾고 rtlstringcbprintfa rtlstringcbprintfw 의 프로토 타입 선언을 보지 만 rtlstringcbprintf 에 대한 선언은 없습니다.내 문자 집합 속성이 사용할 버전을 선택하도록 일반 양식을 사용할 수없는 이유는 무엇입니까?내 문자 집합 속성은 멀티 바이트 문자 세트 을 사용하여 설정합니다.

도움이 되었습니까?

해결책

Windows 가이 두 함수에 대해 RTLStringCbPrintf 정의를 제공하지 않기 때문에.MSDN :

rtlstringcbprintfw를 사용하여 유니 코드 문자열을 처리하고 rtlstringcbprintfa는 ANSI 문자열을 처리합니다.사용하는 양식은에 따라 다릅니다 귀하의 데이터 ..

MSDN의 예제는 rtlstringcbprintf ()가 아닌 rtlstringcbprintfw () 함수를 사용합니다.

rtlstringcbprintf ()를 정의 할 수 있습니다.

#if defined(UNICODE)
# define RtlStringCbPrintf RtlStringCbPrintfA
#else
# define RtlStringCbPrintf RtlStringCbPrintfW
#endif
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top