![]() |
Как проиграть swf-ролик и ресурсов приложения
Уважаемые форумчане подскажите как запихнуть swf-ролик в ресурсы приложения, а затем воспроизвести его оттуда. Работаю на MS VC++.
Очень часто нужно swf в exe запаковывать, раньше пользовался SWF Maestro EXE. В принципе нормальная прога, и fscommand есть и удобная, но под Вистой SP2 скомпиленые программки не пашут. Вот решил не пользоваться сторонними программами и запаковывать в exe самостоятельно. С fscommand разобрался, а вот запихнуть swf в ресурсы и воспроизвести его не удается (опыта программирования на с++ маловато). Буду рад любому совету! |
Под виндой для ActiveX-плеера это сделать можно, за другие платформы не скажу.. Кстати, не припомню ни одной оболочки, где бы это было возможно, разве что у f-in-box что-то было похожее, не уверен. Посмотрите на сайте f-in-box.com, правда он платный.
Ну, а так, вобщем-то, плеер реализует COM-интерфейс IPersistStream, у него есть метод Load(), собственно, стрим ему надо подсунуть с данными из ресурсов и все. В подписи у меня была вроде ссыль на кусок с++ - кода в ветке форума codeproject.com. Да вот он, как пример c использованием ATL-библиотеки: Код:
// это один из методов моего класса, хостящего флэш-контрол |
alexcon314 спасибо большое за ответ. Но к сожалению в ATL я полный ноль. Разбираюсь пока только в Windows Forms Aplication, и то с переменным успехом. Я прошел по ссылке в твоей подписи и скачал пример. Это просто супер, и мувик в ресах и контрол. Приложение монолитное, ничего не "просит", прям сказка (как раз то что мне нужно). Ты не мог бы поделиться исходником. Я готов отблагодарить.
|
Эмм.. вот так вот запросто - "поделись исходником"! )).
Как вы собиратетесь юзать исходник на ATL, если вы в нем полный ноль?:) ЗЫ.Все начинают с "я полный ноль". В Windows Forms я и сейчас ноль). Просто я поставил себе когда-то цель сделать то, что в моей подписи, и добился своего. Ключевые ссылки я дал, а дальше... дорогу осилит идущий. |
Цитата:
Цитата:
|
Простите за менторский тон в моем посте, если он был для вас неприятен.
Скомпилить + прикрутить fscommand (fscommand'a там нет) даже на готовом исходнике - по-любому вам понадобится помощь. Удачи с господами фрилансерами. Тем более, половину исходника я уже выложил, и фактически, и в ссылках. |
С фрилансерами решил подождать, это всегда успеется. Пробую самостоятельно, но пока безрезультатно.
Код:
HINSTANCE hinst = ::GetModuleHandle(NULL);И вот еще какой вопрос. Как до инициализации приложения определить установлен ли флеш-плеер? Чисто логически (ну то есть я так думаю) флеш-контрол (flashXX.осх) должен быть зарегистрирован в системе, т.е в реестре есть об этом запись, и скорее всего, прописан путь к файлу flashXX.осх Далее думаю, что нужно проверить есть ли такой файл, и если нет, выдать ошибку и выйти из приложения. Но вот как это реализовать...? |
Код:
//resourse.hЦитата:
Гг-ы))ы. Можно открыть мой пример в резхакере ( Resourse Hacker) и тупо заменить мувик на любой другой. Далее, проверку установки контрола можно сделать так: Код:
// консольное приложение-пример |
Накорябал функцию, которая получает из реестра путь к файлу flashXX.осх, и проверяет существует ли файл. Т.е если существует, то контрол зарегистрирован в системе и файл на месте. Вот код функции:
Код:
//функция проверки установлен ли флеш контролКод:
Linking... |
Похоже надо прилинковать advapi32.lib.
|
| Часовой пояс GMT +4, время: 08:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.