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édentes Révision précédente
tutoriel:comment_utiliser_mingw32_pour_faire_des_executables_windows [Le 21/08/2024, 00:34]
74.56.181.71 [Comment utiliser MingW[32|64] pour faire des exécutables Windows ?]
tutoriel:comment_utiliser_mingw32_pour_faire_des_executables_windows [Le 21/08/2024, 21:32] (Version actuelle)
Amiralgaby ancienne révision (Le 24/05/2024, 14:08) restaurée
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
  • tutoriel/comment_utiliser_mingw32_pour_faire_des_executables_windows.txt
  • Dernière modification: Le 21/08/2024, 21:32
  • par Amiralgaby