2010-07-12 15 views
5

Me encanta casi todo sobre el juego de herramientas DFL GUI para D, excepto que solo funciona en Windows porque básicamente es un envoltorio bonito de alto nivel alrededor de la API de Windows. ¿Qué tan difícil sería simplemente portar un juego de herramientas como este a Linux (realmente no me importa otro sistema operativo además de Windows y Linux) usando Winelib? ¿Cuáles son las probabilidades de que si compilé una biblioteca de este tipo en Linux y la vinculé con Winelib, en su mayoría "simplemente funcione"? ¿Qué pasos no obvios podrían estar involucrados?Usando Winelib para portar un juego de herramientas GUI solo para Windows

Nota: Para aquellos que no están familiarizados con los métodos D de trabajar con código C, el código C puede invocarse directamente desde D. Simplemente necesita traducir el archivo de encabezado a D (esto ya está hecho para los encabezados Win32, pero no los encabezados de Winelib. No estoy seguro de si los encabezados de Winelib necesitan ser traducidos o si los encabezados de Windows son lo suficientemente buenos), compile el código C con un compilador de C y vincule los archivos del objeto C.

+0

¿Has encontrado una solución mientras tanto? – Trass3r

+0

Sí. Terminé portando a otra biblioteca GUI. – dsimcha

Respuesta

1

No necesita usar winelib si ya está compilando para Windows. Winelib existe solo para proporcionar un entorno de compilación de Windows en wine en una plataforma no compatible con x86 (por ejemplo, linux ppc). No es necesario usarlo en absoluto si su sistema de compilación ya está creando binarios de Windows (sin beneficio de rendimiento).

Una cosa que tendrás que hacer es asegurarte de que las API de Win32 llamen que las DFL dlls usen trabajo en vino (tendrías que hacer esto incluso si usas winelib).

Por lo tanto, no es necesario usar winelib, solo pruebe bajo wine los dlls que ya está construyendo para windows con su aplicación de prueba y archive errores de vino para cualquier llamada api que no sea compatible. :)

Cuestiones relacionadas