Modificador /char
El modificador /char ayuda a garantizar que el compilador MIDL y el compilador de C funcionen correctamente para todos los tipos char y small .
midl /char { signed | unsigned | ascii7 }
-
Firmado
-
Especifica que el tipo de compilador de C predeterminado para char está firmado. Todas las apariciones de char no acompañadas de una especificación de signo se generan como caracteres sin signo.
-
Unsigned
-
Especifica que el tipo de compilador de C predeterminado para char no tiene signo. Todos los usos de pequeños no acompañados de una especificación de signo se generan como pequeños firmados.
-
ascii7
-
Especifica que todos los valores char se van a pasar a los archivos generados sin una palabra clave de signo específica. Todos los usos de pequeños no acompañados de una especificación de signo se generan como pequeños.
Por definición, MIDL char no tiene signo. "Small" se define en términos de char (#define small char) y MIDL small is signed.
El modificador /char dirige al compilador MIDL para especificar declaraciones explícitas firmadas o sin firmar en los archivos generados cuando la declaración de signo del compilador de C entra en conflicto con el valor predeterminado MIDL para ese tipo.
Recuerde que el compilador MIDL genera los códigos auxiliares como código fuente de C, que debe compilar como parte de los programas cliente y servidor. Algunos compiladores usan un carácter con signo en todas partes los datos char se especifican en el código fuente. El código fuente del código auxiliar que genera el compilador MIDL trata todos los datos char como caracteres sin signo. Si el compilador MIDL simplemente generó todos los datos char en el archivo IDL como datos char en los códigos auxiliares, los compiladores que usan un carácter firmado para los datos char provocarían un conflicto en el código fuente del código fuente del código auxiliar.
El propósito del modificador de línea de comandos /char es resolver estos posibles conflictos. Conserva todos los datos especificados como char en el archivo IDL como caracteres sin signo en el código fuente del código fuente de código auxiliar. También mantiene pequeños datos como firmados.
En la tabla siguiente se resumen los tipos generados.
midl /char option | Tipo char generado | Tipo pequeño generado |
---|---|---|
midl /char signed | unsigned char | small |
midl /char unsigned | char | firmado pequeño |
midl /char ascii7 | char | small |
La opción /char signed indica que el carácter del compilador de C y los tipos pequeños están firmados. Para que coincida con el valor predeterminado de MIDL para char, el compilador MIDL debe convertir todos los usos de char no acompañados de una especificación de signo en char sin firmar. El tipo pequeño no se modifica porque este valor predeterminado del compilador de C coincide con el valor predeterminado MIDL para small.
La opción /char unsigned indica que el tipo char del compilador de C no tiene signo. El compilador MIDL convierte todos los usos de pequeños no acompañados de una especificación de signo a pequeñafirma.
La opción ascii7 indica que no se agrega ninguna especificación de signo explícita a los tipos char . El tipo pequeño se genera como pequeño.
Para evitar confusiones, debe usar especificaciones de signo explícitas para tipos char y small siempre que sea posible en el archivo IDL. Tenga en cuenta que el uso de tipos de caracteres firmados explícitamente en el archivo IDL no es compatible con DCE IDL. Por lo tanto, esta característica no está disponible cuando se compila con el modificador /osf MIDL.
Para obtener más información relacionada con /char, vea small.
midl /char signed filename.idl
midl /char unsigned filename.idl
midl /char ascii7 filename.idl