![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DSPack: ошибка при инициализации TSampleGraber как службу [D7, Win2k, WinXP]
Nickla © (2006-10-02 16:01:00)Я хочу использовать DSPack в сервис-приложении, ибо мне необходимо делать снимки с нескольких камер.
За исходный вариант взял готовую программу, переделал ее на TService и при попытке инициализации TSampleGrabber получаю в событиях:
Тип события: Ошибка
Источник события: WebShotService
Категория события: Отсутствует
Код события: 0
Дата: 02.10.2006
Время: 16:20:36
Пользователь: Н/Д
Компьютер: LIBS-VIDEOSERVE
Описание:
Не найдено описание для события с кодом ( 0 ) в источнике ( WebShotService ). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера. Попробуйте использовать ключ /AUXSOURCE= для получения этого описания, - дополнительные сведения об этом содержатся в справке. В записи события содержится следующая информация: Service failed on execute: The SampleGrabber Filter is not available on this system. (c:\program files\borland\delphi7\Lib\Component\dspack234\src\DSPack\DSPack.pas, line 3212).
Как это исправить?
Nickla (2006-10-04 12:15:00) [1]Помоему хороший вариант. Если вариант есть лучше - в студию. Я за рациональное решение и спор
clickmaker (2006-10-03 10:16:00) [2]
> Заметьте имено CoInitializeEx(NIL, 2))
2=COINIT_APARTMENTTHREADED
такая модель у данного ком-сервера. Но это вовсе не значит, что для всех так надо
Nickla (2006-10-03 10:06:00) [3]Я решил эту проблему. решается она очень и очень просто - не надо ничего регистрировать. Достаточно понять различия работ служб и EXE-приложений.
Вот что я накопал - все приложения автоматически выполняют OleCheck(CoInitializeEx(NIL, 2)), службам же это просто ненадо. Как итог - где используем COM обьекты выполняем на Create
OleCheck(CoInitializeEx(NIL, 2));
и на Destroy -
CoUninitialize();
Заметьте имено CoInitializeEx(NIL, 2)) и никак иначе. На многих форумах дают ошибочную подсказку с CoInitialize. Это не то
Nickla (2006-10-03 09:53:00) [4]Выполняю regsvr32.exe qedit.dll и ничего не меняется. В событиях такая же ошибка.
хотелось бы узнать список необходимых библиотек и COM обьектов... и как бы это проверить что они загружены
AbrosimovA (2006-10-03 09:04:00) [5]regsrv32 qedit.dllдля регистрации фильтра SampleGrabber.
clickmaker (2006-10-02 18:43:00) [6]похоже что либо некая DLL отсутствует, либо некий COM-объект не зарегистрирован