Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизОшибка EOleSysError Найти похожие ветки
← →
Серёга (2005-06-06 22:18) [0]При запуске своего приложения на другой ОС (ХР) выдаётся сообщение, типа:
"Exception EOleSysError at myprogram.exe at (адрес, типа 120021). Не найден указанный модуль. Причём под 2000 виндой, где я делал, и компилируется и запускается нормально. Этот баг обнаружен уже на 2-ом компе их XP. Может кто поможет? Заранее благодарен.
← →
KilkennyCat © (2005-06-06 22:23) [1]I>
> Может кто поможет?
могу удар милосердия сделать.
← →
jack128 © (2005-06-06 22:46) [2]А чего тут скажешь.. Шерсти весь код, который выполняется до Application.Run. те виднее, что ты там с com делаешь..
← →
Серёга (2005-06-07 17:34) [3]{Шерсти весь код, который выполняется до Application.Run. те виднее, что ты там с com делаешь}
Тяжело, когда на своём РС всё работает, и постоянно ходить к кому-то и тестить, в чём дело накладно. Благо повезло, долго ходить не пришлось, и я понял, что проблема в компоненте ShockwaveFlashObjects_TLB. Он предназначен для вставки в проект flash-роликов. Как заявляет автор статьи сайта http://delphid.dax.ru (Delphi и Flash. Совмещение несовместимого!), в дэлфе флэш идёт. У меня - да, но почему то на некоторых других компах - нет... может кто скажет, есть ли выход?
← →
VMcL © (2005-06-07 17:40) [4]>>Серёга (07.06.05 17:34) [3]
> У меня - да, но почему то на некоторых других компах - нет...
Вероятно, потому что на этих "других компах" не установлен Flash Player.
← →
Серёга (2005-06-07 17:50) [5]Сейчас нашёл то, что мне надо, но к сожалению, под делфу 7 не идёт:
-------------------------------------------------------------
Коммерческие ActiveX компоненты обычно без проблем подключаются к Delphi и позволяют использовать их свойства так же, как и VCL-компонентов. Но начинающий программист будет удивлен, если увидит, что перенесенная на другой компьютер программа не будет работать. Обычно возникает ошибка EOleSysError. Естественно, ведь сервера ActiveX и кода в нем, который отвечает за манипуляцию данными, найти невозможно без регистрации сервера в системе.
Для того, чтобы программа знала, где найти этот код и данные, сервер следует зарегистрировать. В RxLib есть соответствующая функция, но у меня она не сработала. Не знаю, почему. Поэтому предлагаю универсальный способ. В каталоге windows\system есть утилита regsvr32.exe, которая одним параметром принимает имя файла, и регистрирует его. Остальные параметры можете узнать у нее сами.
Пример регистрации, если произошла ошибка EOleSysError. Код из файла .dpr одной из моих программ:
begin
Application.Initialize;
try Application.CreateForm(TSWFViewForm, SWFViewForm);
except on EOleSysError do //Если возникло исключение, регистрируем сервер
begin
ShellExecute(GetDesktopWindow,"open","c:\windows\system\regsvr32.exe","c:\windows\system\swflash.ocx",nil,SW_SHOWNORMAL) ;
Delay(3000); // Wait for registration
try Application.CreateForm(TSWFViewForm, SWFViewForm);
except MessageDlg("ActiveX сервер не найден!",mtError,[mbOK],0);
end;
end
end;
Application.Run;
end.
Взято с http://eef.ispu.ru/sitestud/sav/activex.htm
------------------------------------------------------
У меня ругается на: EOleSysError, ShellExecute, SW_SHOWNORMAL, Delay, MessageDlg, mtError - Undeclared identifier.
← →
Серёга (2005-06-07 17:51) [6]Нет, плейер установлен. Это проблема с ActiveX.
← →
jack128 © (2005-06-07 20:33) [7]Серёга (07.06.05 17:50) [5]
ShellExecute(GetDesktopWindow,"open","c:\windows\system\regsvr32.exe","c:\windows\system\swflash.ocx",nil,SW_SHOWNORMAL) ;
Delay(3000); // Wait for registration
Б-р-р.. Никогда не делай так. Для таких вещей есть CreateProcess + WaitForSingleObject
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.055 c