Domanda

Sto cercando di usare rtlstringcbprintf con winsock kernel.Ho incluso NtstrSafe.h ma il compilatore mi dà l'errore

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

Se utilizzo rtlstringcbprintfa o rtlstringcbprintfw quindi compila.Perché non posso usare la versione generica?Guardando a NtstrSafe.h Vedo le dichiarazioni del prototipo di RTLStringCbPrintFa e RTLStringCbPrintFW ma nessuna dichiarazione per RTLStringcbPrintF Sebbene i commenti si riferiscano ad esso.Perché non riesco a usare la forma generica in modo che la mia proprietà del mio carattere seleziona la versione da utilizzare?La mia proprietà set di caratteri è impostata su Usa set di caratteri multi-byte

È stato utile?

Soluzione

Poiché Windows non fornisce RTLStringCbPrintf definisci per queste due funzioni.Da MSDN:

.

Utilizzare RTLSTRINGCBPRINTFW per gestire stringhe Unicode e Rtlstringcbprintfa per gestire stringhe ansi.Il modulo che usi dipende da i tuoi dati ..

L'esempio da MSDN utilizza la funzione RTLSTRINGCBPRINTFW (), non RTLStringcbPrintf ().

È possibile definire RTLStringCbPrintf () te stesso:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top