2010-01-26 16 views
6

La situación es la siguiente. Normalmente utilizo RAD Studio 2010 para el desarrollo de Delphi. Tengo algunos componentes que me gustaría redistribuir en forma binaria (* .bpl sin fuente). Pero me gustaría que las personas puedan usarlos a pesar de su versión Delphi. Pero, por ejemplo, los archivos dcu solo se pueden usar según la versión del compilador que los generó. Casi la misma situación es con archivos bpl, como sé. Cada archivo bpl requerirá la biblioteca VCLXX.bpl correspondiente según la versión de Delphi. ¿Cómo puedo hacer que mi bpls, compilado en 2010, pueda ser utilizado en Delphi7, 2007, etc.?Paquete de componentes Compile Delphi (bpl) para diferentes versiones de Delphi

es la única solución para tener todas las versiones de Delphi instalados y compilar archivos BPL por separado en cada uno?

+0

posible 'bonificación' pregunta: ¿se necesitan versiones 'completas' de Delphi (sin actualizaciones) para compilar estos archivos BPL? Por ejemplo, después de actualizar de Delphi 7 a Delphi 2010, ¿permite la licencia distribuir BPL creados con la versión original Delphi 7 * y * archivos creados con la actualización Delphi 2010? – mjn

+1

Sí, @mjustin, eso está permitido. La gente lo hace todo el tiempo. Mi impresión es que eso es lo que hacen todos los fabricantes de componentes. –

+3

La mayoría de los desarrolladores de Delphi se niegan a usar componentes distribuidos sin fuentes, exactamente porque no puedes usar una versión más nueva de Delphi hasta que estén disponibles paquetes actualizados, y si esos paquetes no se mantienen, tienes un problema. –

Respuesta

7

Sí, esa es la única solución. Cada compilador produce DCU y BPL específicos para su propia versión. La única excepción que conozco es que Delphi 2006 y 2007 comparten el mismo formato.

+1

Para explicar esto, los proveedores de componentes que envían solo archivos binarios tienden a empaquetarlos en un instalador que contiene TODOS los archivos binarios compatibles y luego instala los que el usuario selecciona. –

2

Para distribuir el código compilado que puede ser utilizado por múltiples versiones del compilador, distribuir un archivo DLL de ordinario, no una BPL. Los paquetes y unidades son específicos de la versión.

crear funciones independientes que exporta en el estilo C, o crear objetos COM que registrarse con el sistema operativo.

Sin embargo, no tiene que cambiar toda su estrategia de desarrollo; podría ser una DLL que usa BPL, por lo que puede conservar todo el trabajo que ya ha incluido en el paquete.

+0

Desafortunadamente, esto requerirá una aplicación de mi usuario para incluir mis bibliotecas dll. No creo que el usuario habitual esté dispuesto a redistribuirlos. –

+0

Eso es lo que tendrían que hacer si tu plan original, un BPL, fuera viable. No hay diferencia en ese sentido. (Aunque he oído que hay formas de agrupar un archivo DLL dentro de un EXE, para aquellas personas que realmente les importa cuántos archivos distribuyen). –

+0

Delphi puede tomar el código de BPL e integrarlo en el archivo EXE de destino. No hay necesidad de redistribuir BPL por separado. –

0

Puedo crear un instalador que obtenga las versiones instaladas de Delphi en la máquina. Elija para la bruja Delphi que desea crear de bpl y llame al corresponsal Dcc por la línea de comando para generar los correspondientes bpl e instálelos en Delphi. Puede buscar en el instalador de JVCL para obtener un ejemplo.

Att.

+0

@SaCi, JVCL se redistribuye en forma de fuente y se compila en binario en el PC desarrollador de destino. Entonces, este no es mi caso. –

0

Se puede crear un archivo obj en C++ Builder y el enlace que en Delphi, distribuir un archivo pas pequeña (cabecera). El formato obj del generador de C++ no ha cambiado de delphi 7 a 2009 (puedo confirmar 2010, pero creo que será el mismo también).

Debería probar si esto fuera posible para los componentes visual/designtime.

Cuestiones relacionadas