Pregunta

He creado una aplicación de Windows C ++ que me gustaría portar a Linux. Las principales razones para hacerlo es la facilidad de mantenimiento del sistema para nuestro personal de TI. Además de la única máquina de Windows que ejecuta esta aplicación, somos una operación exclusiva para Linux.

La razón por la cual esta aplicación se creó y se ejecuta en Windows es porque utiliza una API de Windows (dll y encabezado) para conectarse a un servidor que pertenece a una parte externa. Esta conexión utiliza algún protocolo patentado con el que realmente no quiero meterme (y creo que no tengo permiso contractual), así que estoy atascado con el .dll.

Este dll es windows solo por (sospecho) código específico de los sockets de windows en el dll. Aparte de eso, no hace muchas cosas avanzadas. ¿Hay alguna forma de ejecutar la aplicación en Linux en WINE y rastrear el protocolo y volver a implementar la DLL yo mismo que me permita hacer que esta aplicación se ejecute en una máquina Linux?

Esta idea se inspiró en este artículo sobre el creador de QT por lo que cualquier solución que me permita jugar con eso sería genial.

¿Fue útil?

Solución

El término medio más obvio sería usar Winelib . No sé si se puede vincular directamente a una DLL nativa, pero si no, probablemente podría cargarlo con LoadLibrary () .

Entonces podría dividir su aplicación en dos partes: un contenedor que solo llama a la DLL, y el resto del código hablando con su contenedor. Podría tener ambos en procesos separados y, por lo tanto, solo el contenedor debería compilarse con Winelib. El resto de la aplicación podría usar el marco que desee.

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