| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Lun 06 Ene, 2020 11:37 am Asunto: Problema reproducir archivos .swf |
|
|
Buenas.
He instalado en mi aplicacion el componente Shockwave Flash de la forma:
Component->Import ActiveX Control-> Shockwave Flash (Version 1.0)->Install->Ok->Yes->Ok.
Ademas he instalado e incluido en la aplicacion el componente SmartFlash (sf_flash.hpp) para reproducir un archivo .sfw.
Funciona perfectamente siempre y cuando el pc en que se ejecute la aplicacion tenga instalado Macromedia Flash8....
Mi pregunta es.. ¿Es inevitable que en los pc que no tengan instalado Macromedia Flash8 no pueda reproducirse el archivo .swf de mi aplicacion o estoy haciendo algo mal?
Gracias |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 15 Ene, 2020 9:08 pm Asunto: |
|
|
El comportamiento es normal, ya que estas distribuyendo tu aplicación SIN los componentes necesarios.
Dentro del foro existe el tema de los Packages y Dynamic Link RTL que deben estar habilitados o deshabilitados según sea el caso, aunado a esto, el reproductor cuenta con librerias DLL que toma cuando se instala Macromedia Flash Player por la carpeta de "Archivos de programa"
Una segunda opción es el uso del programa InstallShield y la opción que tiene (es una maravilla) para buscar dependencias dinámicas y estáticas, ejecutando el programa y revisando "lo que necesita" para empaquetarlo en un archivo setup para ser distribuido en cualquier equipo.
Antes del tema del installShielld, prueba con las opciones Package y Dynamic link RTL
Saludos!! _________________
 |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Lun 20 Ene, 2020 12:15 pm Asunto: |
|
|
muchas gracias por contestar.
Tendre en cuenta tus dos consejos.
Gracias. |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mie 19 Feb, 2020 8:35 am Asunto: |
|
|
Buenas ..
He seguido dandole vueltas a este tema y parece ser que es inevitable tener Macromedia Flash8 ( swflash.ocx / flash.ocx ) instalado en el pc para poder reproducir archivos .swf en mi aplicacion.
Creo que una posible solucion en pcs que no tenga instalado Macromedia Flash8 seria "incrustar el flash.ocx en la sección de recursos del archivo exe de mi aplicación y luego cargarlo en tiempo de ejecución."
Si esta solucion es viable alguien podia indicarme como incrustar el flash.ocx en la sección de recursos del archivo exe , no tengo ni idea.
Gracias |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 19 Feb, 2020 5:16 pm Asunto: |
|
|
Usa las siguientes instrucciones que vienen en este post por "MArky"
https://cppbuilder.es/viewtopic.php?t=4531&highlight=build+with+runtime+packages
Es lo que se refiere a "Empaquetar" tu código con lo necesario para ejecutarse dentro de otra PC, y la otra parte es la que mencionba al usar el Software InstallShield y su busqueda dinámica de librerías para el ejecutable.
Saudos!!
Nota: existe dentro del foro mucha información relevante al proceso de distribución de un ejecutable con lo necesario para usarse en otro equipo. _________________
 |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Jue 20 Feb, 2020 10:33 am Asunto: |
|
|
Gracias por contestar..
DesHabilito las opciones Package y Dynamic link RTL pero sigue sin reconocer el archivo swf, intentare probar con el InstallShield ..
Gracias. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 20 Feb, 2020 3:10 pm Asunto: |
|
|
Recomiendo que si usas InstallShield asegúrate que tienes instalado todo lo necesario para que tu ejecutable funcione, también es muy recomendable usar la opción de los Package y Dynamic RTL para que "todo" se inserte en tu archivo .exe.
Ejecutas installShield y usas la referencia para búsquedas dinámicas y estáticas para las dependencias (creas el instalador) vas a un segundo equipo de preferencia con una instalación limpia de windows SIN paquetes, "instalas" tu programa y debe funcionar, ya que InstallShield al realizar la ejecución de tu aplicación en tu equipo toma lo necesario y lo empaqueta en el instalador, para que al usarse en otro equipo, instale lo necesario.
Saludos!! _________________
 |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 20 Feb, 2020 3:16 pm Asunto: |
|
|
Otra opción sería que todos los archivos que usa tu aplicación los dejes en un solo directorio con tu ejecutable y posteriormente copies esa carpeta al nuevo equipo (.exe, .dll, .ocx etc etc) ejecuta tu archivo y debe funcionar.
Digamos que esa es la manera mas tosca de pasar un ejecutable, la otra es mas elegante usando un instalador creado por InstallShield que relativamente hace lo mismo y un poco mas al realizar configuraciones que puedan pasarse por alto.
Saludos!! _________________
 |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Vie 21 Feb, 2020 8:43 pm Asunto: |
|
|
También puedes incorporar los archivos a tu ejecutable en la sección de recursos y volcar los a disco cuando de ejecute.
Crea un archivo de texto con el nombre files.rc
Escribe este texto:
| Código: |
File1 RCDATA "archivo.ext"
|
Incorpora el archivo a tu proyecto. Con esto el compilador lo añade a los recursos en el ejecutable
Para extraerlo el código será así:
| Código: |
TResourceStream *RS = new TResourceStream(0, "File1", RT_RCDATA);
RS->SaveToFile("file.ext");
delete RS;
|
Saludos. |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Lun 24 Feb, 2020 1:12 pm Asunto: |
|
|
Muchisimas gracias por contestar Escafranda.
Voy a intentear hacer lo que me comentas.
Gracias |
|
| Volver arriba |
|
 |
|