2008-10-17 8 views
5

Tengo que hacer un proyecto de colegio usando C++ que requiere una GUI. Quiero usar Perl/Tk para la GUI, pero no estoy seguro de cómo vincular el C++ con Perl. El proyecto requiere poder pasar variables de un lado a otro. ¿Podría alguien dirigirme hacia algunos buenos tutoriales/libros para vincular los dos, o cualquier idea sobre cómo abordar el problema ya que nunca antes tuve que vincular dos idiomas?Perl/Tk GUI para C++ Aplicación

Respuesta

6

Estoy working en un library para hacerlo lo más simple posible, pero sigue siendo una versión alfa.

6

También puedes probar swig. Es una herramienta para generar interfaces a varios lenguajes de scripting de C/C++.

5

Como Perl va a proporcionar la GUI, inserte el código de C++ en Perl. Suponiendo que va a haber una cantidad significativa de código C++, lo pondría en una biblioteca. La forma tradicional de vincular esa biblioteca a Perl es crear un módulo Perl usando XS. El Tutorial for writing XSUBs y XS language reference manual te ayudarán con eso.

Una forma un poco más fácil puede ser utilizar el módulo Inline. He usado Inline::C antes, y funcionó bien, pero nunca he probado Inline::CPP (la versión de C++). Veo que tiene mixed reviews.

+0

Años posteriores. Inline :: CPP no se ha mantenido desde 2003. En 2011 comencé a trabajar en él como co-mantenedor, y comprometí aproximadamente 135 parches entre noviembre de 2011 y mayo de 2012. Está en mejor forma ahora. La lista de errores de RT está reducida a un ítem de lista de deseos persistente. Y la tasa de éxito de la instalación de los probadores CPAN está en el rango medio de 90%. – DavidO

0

si se trata de un proyecto pequeño, probablemente no valga la pena invertir mucho tiempo para hablar los dos idiomas. podrías considerar usar una herramienta más apropiada. C# hablará con C++ con mucho menos dolor.

1

Si estuviera abordando este problema, utilizaría TCL/TK para crear una GUI y luego construir una extensión TCL en C/C++ que se pueda llamar desde TCL/TK. Esta es una de las cosas en las que TCL/TK es realmente bueno (otros lenguajes dinámicos pueden hacer esto también pero me gusta TCL/TK). Usted crea una biblioteca compartida (.so en Unix o .dll en Windows) con los bits de C++ y se importan como comandos en TCL cuando carga la biblioteca.

Swig, que ya se ha mencionado, es una herramienta que ayuda a automatizar el proceso de envoltura, puede tomar su código C++ y crear un envoltorio que permita cargarlo en un número de idiomas como TCL, Perl, Python, Ruby ...

Empiece por http://www.tcl.tk/ para obtener mucha información sobre TCL y TK.

Cuestiones relacionadas