Куда делся модуль InvRules (ранее находившийся в папке SOAP) в Delphi XE2?

Я пытаюсь перенести некоторый код Delphi XE в XE2, он использует модуль InvRules.pas, который, согласно документам XE2, не имеет префикса пространства имен.

Его также нет в папке с мылом, где я его ожидаю:

C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\soap

Самый простой ответ: он был удален (случайно или намеренно) из XE2. Кто-нибудь понял, в чем дело? Этот модуль содержит такие функции, как GetStackTypeSize и RetOnStack, которые иногда используются в пользовательских классах типа TRIOHelper.


person Warren P    schedule 09.09.2011    source источник
comment
Я могу подтвердить, что он нигде не установлен на моем диске, связанном с SKU XE2 Pro. (У меня есть копии для нескольких более ранних версий Delphi).   -  person Ken White    schedule 09.09.2011
comment
Я скопировал его на данный момент из XE, и он работает.   -  person Warren P    schedule 10.09.2011


Ответы (1)


Этот модуль больше не используется средой выполнения мыла, поэтому он больше не поставляется. В предыдущих выпусках он был частью пакета среды выполнения soaprtl. Были внесены некоторые существенные изменения в среду выполнения soap для выпуска XE2, чтобы сделать код переносимым на x64 и менее зависимым от кода BASM, который по существу дублировался в модулях поддержки RTTI. Запись журнала изменений, связанная с состоянием фиксации:

Рефакторинг InvRules, использование RTTI для получения размеров шрифта. Удалите InvRules, PrivateHeap из пакета мыла.

Если у вас есть код, основанный на вспомогательных процедурах в этом модуле, вы должны быть в порядке, используя исходный код из предыдущего выпуска. Вы также можете сравнить модули Invoker.pas, InvokeRegistry.pas, OPToSOAPDomConv.pas и Rio.pas между XE и XE2, чтобы увидеть, как изменился код, чтобы он больше не зависел от модуля InvRules.pas.

person Mark Edington    schedule 15.09.2011
comment
Спасибо, Марк. Возможно, вы захотите связаться с командой документации и попросить их удалить ссылки на InvRules и написать вики-страницу о старых модулях RTL, которые были удалены. - person Warren P; 15.09.2011
comment
Спасибо, Уоррен, я так и сделаю. Мы несколько упростили процесс принятия решения о том, какие исходные файлы должны быть доставлены, но синхронизация документов (особенно при удалении файлов) по-прежнему в основном выполняется вручную. - person Mark Edington; 15.09.2011