Exportar (0) Imprimir
Expandir Tudo

Convenções para protótipos de função

Atualizado: outubro de 2014

A biblioteca nativa de tempo de execução do serviço do Azure fornece protótipos de função em versões genéricas, UTF-8 e Unicode. Os protótipos podem ser criados para produzir protótipos de UTF-8 ou protótipos de Unicode. Todos os três protótipos são discutidos neste tópico e ilustrados por exemplos de código para a função Função RoleEnvironmentGetConfigurationSetting.

noteObservação
Estas convenções são semelhantes às definidas para a API do Windows, exceto que os protótipos da função da biblioteca nativa de tempo de execução do serviço do Azure são UTF-8 em vez de ANSI.

A biblioteca nativa de tempo de execução do serviço do Azure define todas as funções usando STDAPI, o que indica que a função retorna um HRESULT.

A seguir está um exemplo de um protótipo genérico.

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

O arquivo de cabeçalho fornece o nome genérico da função implementada como uma macro.

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

O pré-processador expande a macro no nome de função UTF-8 ou Unicode. A letra "A" (UTF-8) ou "W" (Unicode) é adicionada ao final do nome genérico de função, conforme for apropriado. O arquivo de cabeçalho em seguida fornece dois protótipos específicos, um para UTF-8 e um para Unicode, conforme mostrado nos exemplos a seguir.

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);

Como explicado em Tipos de dados do Windows para cadeias de caracteres, o protótipo genérico da função usa o tipo de dados LPCTSTR para o parâmetro de texto. No entanto, o protótipo de página do código do Windows usa o tipo LPCSTR e o protótipo Unicode usa LPCWSTR.

Para todas as funções com argumentos de texto, os aplicativos devem normalmente usar os protótipos genéricos de função. Se um aplicativo define “UNICODE” antes das instruções de #include para os arquivos de cabeçalho ou durante a compilação, as instruções serão compiladas em funções Unicode.

Seu aplicativo sempre deve usar um protótipo genérico da função com a cadeia de caracteres e os tipos de caracteres genéricos. Todos os nomes de função que terminam com “W” maiúscula usam Unicode, ou seja, caracteres e parâmetros largos.

Consulte também

Mostrar:
© 2014 Microsoft