Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2011, 23:45   #1
kiber_punk
Пользователь
 
Регистрация: 17.06.2008
Сообщений: 16
По умолчанию Delphi: ошибка "Интерфейс не поддерживается" (mstscax.dll)

Приветствую.

Пишу менеджер рабочих столов.
После переустановки Delphi (7-я версия) перестал работать ActiveX "Microsoft Terminal Services Control". Он импортируется из библиотеки mstscax.dll ("Terminal Services ActiveX Client").

При попытке изменить какое-либо свойство в AdvancedSettings2, нипример

[MsRdpClient1.AdvancedSettings2.RDPP ort:=3333], вылетает ошибка:
Цитата:
---------------------------
Debugger Exception Notification
---------------------------
Project Project2.exe raised exception class EOleException with message 'Интерфейс не поддерживается'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
До переустановки среды всё работало как часы. В VB6 тоже всё в порядке.

Уже все перепробывал, и перерегистрация библиотеки, и обновление RDP, и снос делфей -

ничего не помогает. Единственное, что после обновления версии библиотеки (5.1.2600.2180 =>

6.0.6000.16386) ошибка выглядит несколько иначе:
Цитата:
---------------------------
Debugger Fault Notification
---------------------------
Project D:\Program Files\Borland\Delphi7\Bin\Project1. exe faulted with message: 'access

violation at 0x00000000: read of address 0x00000000'. Process Stopped. Use Step or Run to

continue.
---------------------------
OK
---------------------------
Прошу гуру помочь.
kiber_punk вне форума Ответить с цитированием
Старый 08.01.2011, 10:18   #2
kiber_punk
Пользователь
 
Регистрация: 17.06.2008
Сообщений: 16
По умолчанию

Никто не поможет?
kiber_punk вне форума Ответить с цитированием
Старый 08.01.2011, 12:40   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты уверен что такие свойства точно существуют?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2011, 19:41   #4
kiber_punk
Пользователь
 
Регистрация: 17.06.2008
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Stilet
А ты уверен что такие свойства точно существуют?
Мда.. Ответ модератора ошеломил
Смотри объектную модель RDP (google,msdn).

ЕЩЁ РАЗ ПОВТОРЯЮ:
Цитата:
До переустановки среды всё работало как часы.
Данная проблема встречается достаточно часто, но ответа до сих пор нет.

Последний раз редактировалось kiber_punk; 08.01.2011 в 19:56.
kiber_punk вне форума Ответить с цитированием
Старый 08.01.2011, 20:10   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

6 ссылок, из которых 4 — ссылки на твои посты на этом форуме, а 2 остальных на другом — это называется "никогда ни у кого кроме тебя и ещё одного чувака такое не происходило и не будет происходить".

Походу поудаляй все MSTSCLib_TLB.pas, которые нагенерились от старых библиотек, и добавляй ActiveX заново. Может поможет.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.01.2011, 21:02   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ответ модератора ошеломил
Ошеломись-ка еще сильнее: Далеко не гарантия что представленные свойства на самом деле существуют в интерфейсах, которые ты затребовал. Я на такую ерунду наталкивался часто очень часто в CAD системах, когда одной функцией или свойством, может возвращаться несколько разных по составу интерфейсов, и их нужно обязательно приводить к правильному типу, зная какой из интерфейсов вернулся. Это зависит от ситуации. Так что заканчивай наивничать, лучше постарайся выяснить что же всетки лежит за теми злосчастными свойствами, что тебе возвращает та библиотека. По другому ты не определишь. Можно попробовать найти TLB на ту библу и посмотреть правильно ли ты вызываешь интерфейсы. Ее же можно проинсталлировать в компоненты Делфи и использовать. Бьюсь об заклад что с ActiveX ты работаешь не через палитру компонент, а через CreateOleObject или иже с ней.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2011, 00:05   #7
kiber_punk
Пользователь
 
Регистрация: 17.06.2008
Сообщений: 16
По умолчанию

Цитата:
Сообщение от veniside
из которых 4 — ссылки на твои посты на этом форуме, а 2 остальных на другом
Ну и логика!

Цитата:
"никогда ни у кого кроме тебя и ещё одного чувака такое не происходило и не будет происходить".
Подобный флудеразм не приветствую.
Держи, Холмс.
Выходит нас уже трое? Переформулируй запрос, найдёшь ещё.
Цитата:
Походу поудаляй все MSTSCLib_TLB.pas, которые нагенерились от старых библиотек, и добавляй ActiveX заново. Может поможет.
Пробовал - не помогает.
Цитата:
Сообщение от kiber_punk
Уже все перепробывал, и перерегистрация библиотеки, и обновление RDP, и снос делфей - ничего не помогает.
Цитата:
Сообщение от Stilet
Бьюсь об заклад что с ActiveX ты работаешь не через палитру компонент, а через CreateOleObject или иже с ней.
Бей сильнее - именно через палитру.
kiber_punk вне форума Ответить с цитированием
Старый 09.01.2011, 00:11   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

ОК, вас уже трое. Теперь будем думать, что с вами со всеми делать )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 09.01.2011, 13:25   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Бей сильнее - именно через палитру.
Ладно. Где моя боксЁрская перчатка? ))))
Я поставил в свою Делфи 6 этот компонент на палитру.
Там есть классы
TMsRdpClient2, TMsRdpClient3,TMsRdpClient4,TMsRdpC lient5,TMsRdpClient6.
Накидал их все на форму (чтоб не пропустить ни одного)
Код:
 MsRdpClient21.AdvancedSettings2.RDPPort:=3333;
 MsRdpClient31.AdvancedSettings2.RDPPort:=3333;
 MsRdpClient41.AdvancedSettings2.RDPPort:=3333;
 MsRdpClient51.AdvancedSettings2.RDPPort:=3333;
 MsRdpClient61.AdvancedSettings2.RDPPort:=3333;
Запустилось без проблем. Просто таки идеально (WinXP Sp3)
А теперь скажи мне какой тип у твоего компонента MsRdpClient1
Скорее всего ты просто напросто не то подключил, и как я и сказал тебе не возвращается нужный интерфейс. Залезь в генофонд твоего MsRdpClient1 и посмотри какие там свойства есть. Не ленись. С интерфейсами поаккуратнее нужно.

P.S. Да и вот еще что, господа, - флуд прекращаем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Синтаксическая ошибка " или " в чём разница?" vedro-compota PHP 7 07.08.2010 16:45
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Delphi 7. Ошибка "ADODataSet1: Cannot perform this operation on a closed dataset" Vind Помощь студентам 6 20.04.2009 22:47
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
Как "динамически" использовать "DLL" Air Общие вопросы Delphi 7 11.12.2007 21:55