2008-11-09 67 views
4

我已經構建了一個我想要移植到Linux的Windows C++應用程序。這樣做的主要原因是我們的IT人員對系統維護的方便性。除了運行這個應用程序的一臺Windows機器,我們只是一個linux操作。在便攜式應用程序中使用Windows DLL

這個應用程序內置的原因,並在Windows上運行是它使用Windows API(DLL和頭)連接到屬於外部方的服務器。這個連接使用了一些我不想惹的私有協議,(我認爲我在合同上是不允許的),所以我堅持使用.dll。

這個DLL是僅僅因爲(我懷疑)在Windows DLL中的特定代碼窗口。除此之外,它不會做很多先進的東西。在WINE的Linux上運行應用程序和嗅出協議並自己重新實現DLL之間有什麼辦法可以讓我在Linux機器上運行該應用程序?

這個想法靈感來自於這個item about QT creator所以任何解決方案,讓我玩這將是非常酷。

+1

現在葡萄酒如此完整,所以最簡單的方法就是在Wine上運行這樣的程序。如果你能將程序移植到mingw工具鏈中,你仍然可以維護它並在Linux上運行它,根本不需要Windows。你可以使用標準的GNU make和一切。 – 2015-08-28 07:36:16

回答

6

最明顯的中間地帶是使用Winelib。我不知道它是否可以直接鏈接到本地​​DLL,但如果不是,你可能可以加載它與LoadLibrary()

然後,您可以將應用程序分爲兩部分:一個只調用DLL的包裝器,其餘代碼與包裝器交談。你可以在兩個獨立的進程中使用,因此只有包裝器必須用Winelib編譯。其餘的應用程序可以使用任何你想要的框架。

相關問題