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


Параметр /error

Параметр /error определяет типы проверки ошибок, которые созданные заглушки будут выполнять во время выполнения.

Примечание

Эта функция устарела и больше не поддерживается. Рекомендуется использовать параметр /robust .

 

midl /error { allocation | stub_data | ref | bounds_check | none | all }

Параметры переключения

Распределения

Проверяет, возвращает ли midl_user_allocate значение NULL , указывающее на ошибку нехватки памяти.

stub_data

Создает заглушку, которая перехватывает исключения отмены марширования на стороне сервера и передает их обратно клиенту.

Ref

Создает код, запускающий проверка во время выполнения, чтобы гарантировать отсутствие ссылочных указателей NULL в клиентские заглушки, и вызывает исключение RPC_X_NULL_REF_POINTER при обнаружении.

bounds_check

Проверяет размер соответствующих и изменяющихся массивов на соответствие спецификации длины передачи.

Ни один

Не выполняет проверку ошибок.

Все

Выполняет все проверки ошибок. В случае с MIDL версии 5.0 это параметр компилятора по умолчанию.

Комментарии

Параметр /error выбирает количество проверок ошибок, которые будут выполнять созданные файлы-заглушки. В случае с MIDL версии 5.0 значением по умолчанию является /error all.

Проверяемые ошибки перечисления (по умолчанию во всех версиях MIDL) — это ошибки усечения, вызванные при преобразовании между типами длинных перечислений (32-разрядные целые числа) и короткими типами перечисления (представление перечисления сетевых данных), а также число идентификаторов в перечислении, превышающее 32 767.

Проверка ошибок доступа к памяти (также по умолчанию во всех версиях MIDL) используется для указателей, превышающих конец буфера в коде маршалинга, и для соответствующих массивов, размер которых меньше нуля. Используйте флаг /error bounds_check, чтобы проверка для других недопустимых границ массива.

При указании выделения /error заглушки содержат код, который вызывает исключение, когда midl_user_allocate возвращает значение 0.

Параметр /error stub_data предотвращает сбой клиентских данных на сервере во время размежевывания, обеспечивая более надежный метод обработки операции размежевывания.

В Windows 2000 базовая подсистема маршалинга NDR во время выполнения выполняет большую часть этих проверок. Это означает, что если вы используете один из полностью интерпретируемых режимов (/Oi, /Oif) создания заглушки, выбор различных параметров проверки ошибок не повлияет на производительность.

Примеры

midl /error allocation filename.idl

midl /error none filename.idl

См. также раздел

Общий синтаксис командной строки MIDL

/Надежные