rtlstringcbprintf는 설명 된대로 NTSTRSAFE.H에 없습니다
-
21-12-2019 - |
문제
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
. 제휴하지 않습니다 StackOverflow