Новый RDP 8 (mstscax.dll v6.2), встроенный в Delphi 7, дает нарушение доступа

Моя старая программа Delphi 7 со встроенным RDP-клиентом работает уже много лет, но она дает нарушения прав доступа в Windows 8 и если вы устанавливаете RDP 8 в Windows 7, где файл mstscax.dll (с компонентом ActiveX) обновляется до версии 6.2,

До недавнего времени мой проект импортировал библиотеку типов из mstscax.dll v6.0, и я использовал TMsRdpClient5, если GUID был в реестре, а в противном случае TMsRdpClient2 для обратной совместимости с XP. Чтобы исследовать эту новую проблему, я установил RDP 8 на 32-битной Windows 7, где находится мой Delphi 7, импортировал новую библиотеку типов MSTSCLib_TLB, и это мои выводы:

Во всех компонентах я могу установить свойства непосредственно на компонент, такие как Domain и ColorDepth без ошибок. Но если я хочу установить свойства, такие как AdvancedSettings2.RDPPort, AdvancedSettings2.ClearTextPassword или SecuredSettings2.StartProgram, это приводит к "Нарушение прав доступа в модуле mstscax.dll. Чтение адреса..."

Все эти свойства находятся в "подчиненных интерфейсах", и проблема заключается в том, что эти функции в импортированном коде библиотеки (возвращающем "вспомогательные интерфейсы") приводят к нарушениям доступа:

function Get_AdvancedSettings2: IMsRdpClientAdvancedSettings;
function Get_SecuredSettings2: IMsRdpClientSecuredSettings;

Что изменила Microsoft в mstscax.dll, с которой не может взаимодействовать импортированная библиотека типов? Можно ли импортировать библиотеку типов в новейшую версию Delphi XE3 и использовать ее в Delphi 7 и надеяться, что это позволит правильно реализовать некоторые новые технологии?

На моем Delphi 7 установлены все обновления. Любая помощь будет принята с благодарностью.

0 ответов

Другие вопросы по тегам