Поделиться через


Подписанные и неподписанные типы (MIDL)

Компиляторы, использующие разные значения по умолчанию для подписанных и неподписанных типов, могут вызывать ошибки программного обеспечения в распределенном приложении. Эти проблемы можно избежать, явно объявив типы символов как подписанные или неподписанные. Обратите внимание, что компиляторы IDL DCE не распознают подписанный ключевое слово. Поэтому эта функция недоступна при использовании параметра /osf компилятора MIDL.

MIDL определяет малый тип, который принимает тот же знак по умолчанию, что и тип char в целевом компиляторе C. Если компилятор предполагает, что char является неподписанным, small также будет определен как неподписанный. Многие компиляторы C позволяют изменить значение по умолчанию как параметр командной строки. Например, в среде разработки Microsoft Visual C++ параметр командной строки /J изменяет знак char по умолчанию с sign на unsigned.

Вы также можете управлять знаком переменных типа char и small с помощью параметра командной строки компилятора MIDL /char. Этот параметр позволяет указать знак по умолчанию, используемый компилятором. Компилятор MIDL явно объявляет знак всех типов символов , которые не соответствуют типу C-компилятора по умолчанию в созданном файле заголовка.