Esporta (0) Stampa
Espandi tutto

Convenzioni per prototipi di funzione

Aggiornamento: giugno 2010

Nella libreria nativa di runtime del servizio di Windows Azure sono inclusi prototipi di funzioni in versioni generiche, UTF-8 e Unicode. I prototipi possono essere compilati per produrre prototipi UTF-8 o prototipi Unicode. Tutti e tre i prototipi vengono descritti in questo argomento e vengono illustrati esempi di codice per la funzione Funzione RoleEnvironmentGetConfigurationSetting.

noteNota
Queste convenzioni sono simili a quelle definite per l'API Windows, con l'eccezione che i prototipi di funzioni nella libreria nativa di runtime del servizio di Windows Azure sono UTF-8 anziché ANSI.

La libreria nativa di runtime del servizio di Windows Azure definisce tutte le funzioni tramite STDAPI, che indica che la funzione restituisce un oggetto HRESULT.

Di seguito è riportato un esempio di prototipo generico:

STDAPI
RoleEnvironmentGetConfigurationSettingValue(
    __in LPCTSTR name,
    __out_ecount(cchDest) LPTSTR pszDest,
    __in size_t cchDest,
    __out_opt size_t *pcchRequiredDestSize);

Il file di intestazione fornisce il nome della funzione generica implementato come macro.

#ifdef UNICODE
#define RoleEnvironmentGetConfigurationSettingValue  \ 
        RoleEnvironmentGetConfigurationSettingValueW
#else
#define RoleEnvironmentGetConfigurationSettingValue \ 
        RoleEnvironmentGetConfigurationSettingValueA
#endif /* !UNICODE */
#endif

Il preprocessore espande la macro nel nome della funzione UTF-8 o Unicode. La lettera "A" (UTF-8) o "W" (Unicode) viene aggiunta alla fine del nome della funzione generica, in base alle esigenze. Il file di intestazione fornisce quindi due prototipi specifici, uno per la codifica UTF-8 e uno per Unicode, come illustrato negli esempi seguenti.

STDAPI
RoleEnvironmentGetConfigurationSettingValueA(
    __in LPCSTR name,
    __out_ecount(cchDest) LPSTR pszDest,
    __in size_t cchDest,
    __out_opt size_t *pcchRequiredDestSize
STDAPI
RoleEnvironmentGetConfigurationSettingValueW(
    __in LPCWSTR name,
    __out_ecount(cchDest) LPWSTR pszDest,
    __in size_t cchDest,
    __out_opt size_t *pcchRequiredDestSize);

Come illustrato in Tipi di dati di Windows per le stringhe, il prototipo di funzione generico utilizza il tipo di dati LPCTSTR per il parametro di testo. Tuttavia, il prototipo della tabella codici di Windows utilizza il tipo LPCSTR e il prototipo Unicode utilizza LPCWSTR.

Per tutte le funzioni con argomenti di testo, le applicazioni devono in genere utilizzare i prototipi di funzione generici. Se un'applicazione definisce "UNICODE" prima delle istruzioni #include per i file di intestazione o durante la compilazione, le istruzioni vengono compilate in funzioni Unicode.

L'applicazione deve sempre utilizzare un prototipo di funzione generico con tipi di carattere e di stringa generici. Tutti i nomi di funzione che terminano con una "W" maiuscola accettano Unicode, ovvero parametri con caratteri wide.

Vedere anche

Mostra:
© 2014 Microsoft