Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
tutoriel:comment_utiliser_mingw32_pour_faire_des_executables_windows [Le 21/08/2024, 00:34] – [Comment utiliser MingW[32|64] pour faire des exécutables Windows ?] 74.56.181.71tutoriel:comment_utiliser_mingw32_pour_faire_des_executables_windows [Le 21/08/2024, 21:32] (Version actuelle) – ancienne révision (Le 24/05/2024, 14:08) restaurée Amiralgaby
Ligne 3: Ligne 3:
 ---- ----
  
 +====== Comment utiliser MingW[32|64] pour faire des exécutables Windows ? ======
 +Il peut arriver que pour certaines raisons l'on souhaite créer des exécutables pour Windows depuis Linux. La solution est d'utiliser le programme MingW.
  
-#include <iostream> +MingW est le portage de GCC sur Windows. MinGW est aussi disponible pour Linux. Il sert, sous ce système, à compiler des applications pour Windows.
-#include <windows.h>+
  
-void WriteMemory(HANDLE process, DWORD address, int value+//Voir [[wpfr>MinGW|MinGW (Wikipédia)]]//
-    DWORD oldProtect; +
-    VirtualProtectEx(process, (LPVOID)address, sizeof(int), PAGE_EXECUTE_READWRITE, &oldProtect); +
-    WriteProcessMemory(process, (LPVOID)address, &value, sizeof(int), NULL); +
-    VirtualProtectEx(process, (LPVOID)address, sizeof(int), oldProtect, &oldProtect); +
-}+
  
-int main() { +Pour suivre ce tutoriel vous devez savoir 
-    DWORD pid; // ID de processus du jeu +[[tutoriel:console_ligne_de_commande|vous déplacer dans l'arborescence en ligne de commande]].
-    HANDLE process; +
-    DWORD ammoAddress = 0x00ABCDEF; // Adresse mémoire trouvée avec Cheat Engine +
-    int infiniteAmmoValue = 9999; // Valeur pour munitions infinies+
  
-    std::cout << "Entrez l'ID du processus de Bodycam : "; +Nous allons uniquement utiliser du C ici, pour du C++ remplacer **gcc** par **g++**.
-    std::cin >> pid;+
  
-    // Ouvrir le processus du jeu +Plan du tutoriel 
-    process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); +  * Code en C à avoir pour la compilation 
- +  * Installation de MingW64 
-    if (process == NULL) { +  * Compilation 
-        std::cerr << "Échec de l'ouverture du processus." << std::endl; +  * Exécution du programme créé 
-        return 1; +  * Supplément faire un make file pour faciliter la commande de build
-    } +
- +
-    // Écrire la valeur infinie dans la mémoire +
-    WriteMemory(process, ammoAddress, infiniteAmmoValue); +
- +
-    CloseHandle(process); +
- +
-    std::cout << "Munitions infinies activées." << std::endl; +
-    return 0; +
-}+
  
 ===== Code à avoir sous la main ===== ===== Code à avoir sous la main =====
Ligne 77: Ligne 59:
   sudo apt install gcc-mingw-w64   sudo apt install gcc-mingw-w64
  
-x86_64-w64-mingw32-gcc -o bonjour.exe main.c 
 ==== Compiler en ligne de commande ==== ==== Compiler en ligne de commande ====
   x86_64-w64-mingw32-gcc -o bonjour.exe main.c   x86_64-w64-mingw32-gcc -o bonjour.exe main.c