Frage

Ich habe ein Fenster C ++ Anwendung erstellt, die ich in dem Hafen Linux möchte. Die wichtigsten Gründe, dies zu tun, ist eine einfache Wartung des Systems für unsere IT-Mitarbeiter. Abgesehen von dem einer Windows-Rechner, die diese Anwendung läuft, wir sind ein Linux nur Betrieb.

Der Grund wurde diese Anwendung gebaut Ein- und läuft on- Fenster ist, dass es einen Windows-API (dll und Header) verwendet, um einen Server zu einem externen Teilnehmer gehört, zu verbinden. Diese Verbindung verwendet einig proprietäres Protokoll, das ich mit nicht wirklich zu verwirren will, (und ich glaube, ich bin vertraglich nicht erlaubt), damit ich bin fest mit der DLL.

Diese DLL ist Windows nur wegen (ich vermute) Windows Sockets spezifischen Code in der DLL. Abgesehen davon, dass es nicht eine ganze Menge fortschrittlicher Sachen macht. Gibt es eine Möglichkeit, irgendwo zwischen nur die Anwendung auf Linux in WINE läuft und das Protokoll erschnüffeln und Neuimplementierung der DLL selbst, der mir erlaubt, diese Anwendung zu bekommen auf einem Linux-Rechner laufen zu lassen?

habe diese Idee von diesem Artikel über Qt Creator so eine Lösung, die mir mit, dass wäre besonders kühl zu spielen.

War es hilfreich?

Lösung

Die naheliegendste Mittelweg wäre zu verwenden Winelib . Ich weiß nicht, ob es direkt an einem nativen DLL verknüpfen kann, aber wenn nicht wahrscheinlich Sie es mit LoadLibrary() laden konnten.

könnten Sie dann teilen Sie Ihre Anwendung in zwei Teile: einen Wrapper, der nur die DLL aufruft, und den Rest des Codes auf Ihren Wrapper zu sprechen. Sie könnten beide in getrennten Prozessen haben und somit nur würde der Wrapper müssen mit Winelib kompiliert werden. Der Rest der Anwendung könnte dann verwenden, was Framework Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top