Pregunta

Tengo código fuente de un archivo DLL de Windows que está escrito en C ++ y utiliza Visual Component Library. Ahora mi tarea es la de puerto que a Linux, pero no tengo el código fuente para el propio VCL, o cualquier tipo de documentación (y nunca he trabajado con Borland C ++, en mis días de Windows que he usado MFC)

Esto no debería ser tan difícil, ya que mi DLL no tiene ninguna interfaz gráfica de usuario: por lo que yo puedo ver, que en su mayoría utiliza VCL para multihilo. Me encontré con una clase que hereda de TThread y ahí es donde me quedé atrapado. Hice un poco de búsqueda en Internet, pero no encontró ninguna documentación para VCL hasta ahora. Me gustaría evitar la compra de un libro en Borland C ++ Builder, porque no tengo tiempo para esperar a que llegue desde el Amazonas. No puedo considerar la compra del paquete para Windows, ya que en el trabajo sólo tengo una máquina Linux.

¿Alguna sugerencia?

¿Fue útil?

Solución

El VCL se documenta en de CodeGear sitio web . TThread en particular se describe aquí .

He encontrado la documentación de los componentes relacionados con enhebrado de la VCL a ser más bien escasa. Este sitio tiene una mejor descripción de la Delphi / VCL enfoque para el roscado.

Otros consejos

Las bibliotecas Boost, y wxWidgets, proporcionará análogos a las clases de VCL.

Debe tener en cuenta que la VCL utilizado por C ++ Builder está escrito completamente en Delphi / ObjectPascal. C ++ Builder aplicaciones de todos implican C ++ haciendo uso de bibliotecas basadas en Delphi.

El proyecto de código abierto FreePascal / Lázaro ingeniería inversa mayor parte de la VCL (casi todas las cosas no visual y gran parte del material visual) y que funciona de forma nativa en Linux. El material no visual compatible con VCL es conocida como la "Biblioteca de componentes Libre" ( "FCL") http://www.freepascal.org/ http://www.freepascal.org/fcl/fcl.var

La fuente de la aplicación TThread en el FCL debe ser bastante fácil de encontrar.

Una opción sería volver a escribir en FreePascal, donde el lenguaje cambiaría a ObjectPascal pero pide a la VCL y el uso de componentes VCL sería prácticamente idéntica.

Otra opción podría ser la de puerto para C ++ en Linux y de alguna manera hacer uso de VCL de FreePascal de C ++. No estoy seguro de la viabilidad / factibilidad de eso. Alguien en los foros de FreePascal debe ser capaz de ayudar a responder a eso.

Así que otra opción, ya que alguien ha mencionado no sería más que volver a escribir utilizando alguna otra librería de hilos.

Puede descargar su y tratar de experimentar con ella. Debería ser posible ejecutar el programa bajo VINO por lo menos. Tal vez incluso bajo FreeDOS.

Debe estar relacionado con la clase TThread en Delphi / Kylix. Esa es otra alternativa para explorarlo. Creo que los métodos más importantes se llevaron a cabo () y sync () pero ha sido mucho tiempo desde que lo usé.

Sin embargo, si va a aportar el código limpiamente a Linux, puede ayudar a volver a implementar la clase TThread sí mismo, utilizando algunas bibliotecas de impulso o algo así.

Hace muchos años, Borland lanzó una versión de su IDE para Linux, comercializado como Kylix . No estoy seguro de si todavía es compatible, pero que podría ser el camino de menor resistencia, para usted.

Hay varias bibliotecas que proporcionan marcos como enhebrar por ejemplo Boost (www.boost.org) o ACE ( http: //www.cs. wustl.edu/~schmidt/ACE.html )

Debe ser bastante fácil de portar el código para utilizar una de estas infraestructuras de roscado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top