Comutador /char

A opção /char ajuda a garantir que o compilador MIDL e o compilador C operem juntos corretamente para todos os tipos char e small .

midl /char { signed | unsigned | ascii7 }

Opções de Alternância

Assinado

Especifica que o tipo de compilador C padrão para char está assinado. Todas as ocorrências de char não acompanhadas de uma especificação de sinal são geradas como caractere sem sinal.

Unsigned

Especifica que o tipo de compilador C padrão para char não está assinado. Todos os usos de pequenos não acompanhados por uma especificação de sinal são gerados como pequenos assinados.

ascii7

Especifica que todos os valores char devem ser passados para os arquivos gerados sem um sinal específico palavra-chave. Todos os usos de pequenos não acompanhados por uma especificação de sinal são gerados como pequenos.

Comentários

Por definição, o caractere MIDL não está assinado. "Small" é definido em termos de char (#define char pequeno) e MIDL small é assinado.

A opção /char direciona o compilador MIDL para especificar declarações explícitas assinadas ou não assinadas nos arquivos gerados quando a declaração de sinal do compilador C entra em conflito com o padrão MIDL para esse tipo.

Lembre-se de que o compilador MIDL gera os stubs como código-fonte C, que você deve compilar como parte de seus programas cliente e servidor. Alguns compiladores usam um caractere assinado em todos os lugares em que os dados char são especificados no código-fonte. O código-fonte stub gerado pelo compilador MIDL trata todos os dados char como caracteres sem sinal. Se o compilador MIDL simplesmente gerou todos os dados char no arquivo IDL como dados char nos stubs, compiladores que usam um caractere assinado para dados char causariam um conflito no código-fonte stub.

A finalidade da opção de linha de comando /char é resolve esses possíveis conflitos. Ele preserva todos os dados especificados como char no arquivo IDL como caractere sem sinal no código-fonte stub. Ele também mantém pequenos dados conforme assinado.

A tabela a seguir resume os tipos gerados.

opção midl /char Tipo de caractere gerado Tipo pequeno gerado
midl /char assinado unsigned char small
midl /char sem sinal char assinado pequeno
midl /char ascii7 char small

 

A opção assinada /char indica que o char do compilador C e os tipos pequenos são assinados. Para corresponder ao padrão MIDL para char, o compilador MIDL deve converter todos os usos de char não acompanhados de uma especificação de sinal para char sem sinal. O tipo pequeno não é modificado porque esse padrão do compilador C corresponde ao padrão MIDL para pequeno.

A opção /char sem sinal indica que o tipo char do compilador C não está assinado. O compilador MIDL converte todos os usos de pequenos não acompanhados por uma especificação de sinal para pequenoassinado.

A opção ascii7 indica que nenhuma especificação de sinal explícita é adicionada aos tipos char . O tipo pequeno é gerado como pequeno.

Para evitar confusão, você deve usar especificações de sinal explícitas para tipos char e pequenos sempre que possível no arquivo IDL. Observe que o uso de tipos de caracteres assinados explicitamente no arquivo IDL não é compatível com a IDL do DCE. Portanto, esse recurso não está disponível quando você compila com a opção MIDL /osf .

Para obter mais informações relacionadas a /char, consulte small.

Exemplos

midl /char signed filename.idl

midl /char unsigned filename.idl

midl /char ascii7 filename.idl

Confira também

Char

Sintaxe geral da linha de comando MIDL

/Osf

Pequeno