Installer le compilateur MinGW-w64 gcc
voir le lien sur le compilateur mingw-w64
win32++
Win32++ consiste en une bibliothèque C++ pour pouvoir créer des applications Windows. C'est une alternative logiciel libre aux MFC.
Les includes sont à télécharger et placer dans un répertoire utilisateur
Le premier programme win32++ (Fichier simpliest.cpp)
#include "wxx_wincore.h"
// Note:
// Add the Win32++\include directory to project's additional include directories.
// A class that inherits from CWnd. It is used to create the window.
class CMyWindow : public CWnd
{
public:
CMyWindow() {}
virtual ~CMyWindow() {}
// Ends the program.
virtual void OnDestroy()
{
PostQuitMessage(0);
}
virtual void OnDraw(CDC& dc)
{
dc.TextOut(20, 20, _T("Hello Win32++"));
}
};
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
// Start Win32++.
CWinApp myApp;
// Create a CMyWindow object.
CMyWindow myWindow;
// Create (and display) the window.
myWindow.Create();
myWindow.SetWindowText(TEXT("Win32++ Example"));
// Run the application's message loop.
return myApp.Run();
}
Le makefile (fichier makefile)
Pour une application fenêtre toute simple en C++
SRC=. OBJ=release/obj BIN=release WIN32++INCLUDE=./Win32xx1020/include target: $(BIN)/simpliest.exe $(OBJ)/simpliest.o: $(SRC)/simpliest.cpp x86_64-w64-mingw32-g++ -I$(WIN32++INCLUDE) -c $(SRC)/simpliest.cpp -o $(OBJ)/simpliest.o $(BIN)/simpliest.exe: $(OBJ)/simpliest.o x86_64-w64-mingw32-g++ $(OBJ)/simpliest.o \ -lcomctl32 -lole32 -lcomdlg32 -lgdi32 \ -o $(BIN)/simpliest.exe strip $(BIN)/simpliest.exe
Compilation
On lance la compilation avec make
./Win32xx1020/include/wxx_setup.h:65:10: fatal error: WinSock2.h: No such file or directory
65 | #include <WinSock2.h> // Must include before windows.h.
il faut aller corriger deux lignes dans l'include wxx_setup.h
remplacer WinSock2.h par winsock2.h et Windows.h par windows.h
car Linux tient compte des majuscules contrairement à Windows.
Exécution
aller dans le répertoire release (cd release)
lancer ./simpliest.exe ou wine simpliest
Il se pourrait que rien ne se passe.
copier les dll manquantes, le temps du test, après il faudra les copier dans wine.
cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgcc_s_seh-1.dll . cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libstdc++-6.dll . cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/libwinpthread-1.dll .Et là miracle, le programme ouvre une fenêtre !