bonjour, pouvez vous me dire ce qui ne va pas a la fin de mon code ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <windows.h> 

using namespace std;

int main&#40;int argc, char *argv&#91;&#93;&#41;
&#123;
  HINSTANCE       hinst = &#40;HINSTANCE&#41; GetModuleHandle&#40;NULL&#41;; 
  HRSRC           resImg; 
  HRSRC           resExe;
  HGLOBAL         global; 
  LPVOID          ptrImg; 
  LPVOID          ptrExe; 
  DWORD           res_len_img, file_len_img;
  DWORD           res_len_exe, file_len_exe;  
  DWORD           err; 
  
  resImg = FindResource&#40;hinst, "MonImage", "RT_BITMAP"&#41;; 
  if &#40;!resImg&#41;  return &#40;1&#41;; 
  resExe = FindResource&#40;hinst, "MonExe", "ID_EXE"&#41;; 
  if &#40;!resExe&#41;  return &#40;1&#41;;
  
  global = LoadResource&#40;hinst, resImg&#41;; 
  if &#40;!global&#41;  return &#40;1&#41;; 
  ptrImg = LockResource&#40;global&#41;; 
  if &#40;!ptrImg&#41;  return &#40;1&#41;;

  global = LoadResource&#40;hinst, resExe&#41;; 
  if &#40;!global&#41;  return &#40;1&#41;; 
  ptrExe = LockResource&#40;global&#41;; 
  if &#40;!ptrExe&#41;  return &#40;1&#41;;
  
  res_len_img = SizeofResource&#40;hinst, resImg&#41;; 
  file_len_img = *&#40;&#40;DWORD *&#41; &#40;&#40;&#40;char *&#41; ptrImg&#41; +2&#41;&#41;; 
  if &#40;file_len_img > res_len_img&#41;  return &#40;1&#41;; 

  res_len_exe = SizeofResource&#40;hinst, resExe&#41;; 
  file_len_exe = *&#40;&#40;DWORD *&#41; &#40;&#40;&#40;char *&#41; ptrExe&#41; +2&#41;&#41;; 
  if &#40;file_len_exe > res_len_exe&#41;  return &#40;1&#41;; 
  
  ofstream   osImg&#40;"P&#58;\\Dev-Cpp\\My_exe6\\image_res.bmp", ios&#58;&#58;binary&#41;;
  osImg.write&#40;&#40;char *&#41; ptrImg, file_len_img&#41;; 
  ofstream   osExe&#40;"P&#58;\\Dev-Cpp\\My_exe6\\exe_res.exe", ios&#58;&#58;binary&#41;; 
  osExe.write&#40;&#40;char *&#41; ptrExe, file_len_exe&#41;; 
  osExe.close&#40;&#41;;
	
  return 0;
&#125;
Une fois que l'executable et l'image de mon fichier ressource s'est bien crée dans le repertoire P:\Dev-Cpp\My_exe6, quand je clique sur l'image, elle est bien copiée, mais quand je clique sur l'executable, je recoit un message d'erreur comme quoi "exe_res.exe n'est pas une application win32 valide".
Je crois que c'est due à la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ofstream   osExe&#40;"P&#58;\\Dev-Cpp\\My_exe6\\exe_res.exe", ios&#58;&#58;binary&#41;;
Faut il mettre ios::binary pour un executable ? sinon, d'ou viendrai l'erreur ?

Voici mon fichier ressource .rc:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
MonImage RT_BITMAP 	"x.bmp"
MonExe ID_EXE "Projet3.exe"
Il est evident que mon executable initiale, "Projet3.exe" fonctionne
Merci de votre aide