Параметр /char
Параметр /char помогает обеспечить правильную работу компилятора MIDL и компилятора C для всех типов char и small .
midl /char { signed | unsigned | ascii7 }
-
Подписал
-
Указывает, что тип компилятора C по умолчанию для char является подписанным. Все вхождения char , не сопровождающиеся спецификацией знака, создаются как символ без знака.
-
Без знака
-
Указывает, что тип компилятора C по умолчанию для char не подписан. Все варианты использования малых размеров, не сопровождающиеся спецификацией знака, создаются как маленькие со знаком.
-
ascii7
-
Указывает, что все значения символов должны передаваться в созданные файлы без определенного знака ключевое слово. Все варианты использования малых размеров, не сопровождающиеся спецификацией знака, создаются как небольшие.
По определению символ MIDL не имеет знака. "Small" определяется в терминах char (#define small char), а MIDL small — подписывается.
Параметр /char направляет компилятор MIDL на указание явных объявлений со знаком или без знака в созданных файлах, если объявление знака C-compiler конфликтует с MIDL по умолчанию для этого типа.
Помните, что компилятор MIDL создает заглушки в виде исходного кода C, который необходимо скомпилировать как часть клиентских и серверных программ. Некоторые компиляторы используют подписанный символ везде, где данные char указаны в исходном коде. Исходный код заглушки, создаваемый компилятором MIDL, обрабатывает все данные char как символ без знака. Если компилятор MIDL просто сгенерировал все данные char в IDL-файле как данные char в заглушках, компиляторы, использующие подписанный символ для данных char , вызовут конфликт в исходном коде заглушки.
Параметр командной строки /char предназначен для разрешения этих потенциальных конфликтов. Он сохраняет все данные, указанные в виде char в IDL-файле, как неподписанный char в исходном коде заглушки. Он также сохраняет небольшие данные как подписанные.
В следующей таблице перечислены созданные типы.
параметр midl /char | Сгенерированный тип символа | Созданный малый тип |
---|---|---|
midl /char signed | unsigned char | small |
midl /char unsigned | char | подписанный маленький |
midl /char ascii7 | char | small |
Параметр /char signed указывает, что символ c-компилятора и небольшие типы подписаны. Чтобы соответствовать значению по умолчанию MIDL для char, компилятор MIDL должен преобразовать все варианты использования char , не сопровождающиеся спецификацией знака, в символ без знака. Малый тип не изменяется, так как этот C-компилятор по умолчанию соответствует значению MIDL по умолчанию для small.
Параметр /char unsigned указывает, что тип char C-компилятора не подписан. Компилятор MIDL преобразует все варианты использования small , не сопровождающиеся спецификацией знака, в подписанныйsmall.
Параметр ascii7 указывает, что в типы символов явно не добавляется спецификация знака. Тип small создается как маленький.
Чтобы избежать путаницы, следует по возможности использовать явные спецификации знаков для символов char и небольших типов в IDL-файле. Обратите внимание, что использование явно подписанных типов char в IDL-файле не поддерживается В DCE IDL. Поэтому эта функция недоступна при компиляции с параметром MIDL /osf .
Дополнительные сведения, связанные с /char, см. в разделе small.
midl /char signed filename.idl
midl /char unsigned filename.idl
midl /char ascii7 filename.idl