Ecrire un exe lentement problème 0D0A

Signaler
Messages postés
139
Date d'inscription
mardi 16 mai 2006
Statut
Membre
Dernière intervention
23 juin 2008
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour
quand j'écrit mon exe
mon programme rajoute un \n quand il y a dans le buffer un \r et vice versa voici mon code :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  printf("mapping du fichier\n");
  HANDLE hFileIn;
     DWORD dwsize, r=0, rw,dwFindDep,dwFindFin;
  DWORD i = 0,k=0,l=0,m=0;  //i pour le resu  k pour le filein  
  DWORD nbIndent=0;
  DWORD line=0;
  char c;
  char bufindent[500];
     char *szBuff,*szResu, *e, *e1, *e2;
     BOOL inchar=FALSE;
  hFileIn = CreateFile("1.exe", GENERIC_READ, 0, 0, OPEN_ALWAYS, 0, 0);
  if(hFileIn == INVALID_HANDLE_VALUE)
    goto Erreur;      

  dwsize = GetFileSize(hFileIn, NULL);
 
  if(dwsize == INVALID_FILE_SIZE )
   goto ErreurSize;

   
     szBuff =(CHAR *) malloc(dwsize+1);

     memset(szBuff,0,sizeof(szBuff));

    
  ReadFile(hFileIn, szBuff, dwsize, &rw, NULL);

     szBuff[dwsize]='\0';
     if(rw != dwsize)
        goto ErreurMem;
  CloseHandle(hFileIn);
     printf("fin du mapping du fichier ...\nTeste de l'antivirus\n");
     
     

  FILE * out;

  int size;
  out = fopen("C:\\test\\temp.exe","w");
  if (!out)
    return 0; 
  size=1; 
  for (i=0,k=0;k<=dwsize;k++,i++){
    if (i>=500){
      sleep(10);
      i=0;
    }
   
      size=fprintf(out,"%c",szBuff[k]);//fwrite(&szBuff[k], 1,1,out);
     
       if (size!=1){
      printf("OULA ECRITURE:%d BLOQUE a :%d\n",size,k);
     
      break;
   }    
     
  }
  fclose(out);
  free(szBuff);

  system("PAUSE");   
  return 0;
 
 
 
 
 
 
 
 
 

;
return 1;
Erreurtropg:
  printf("ERREUR trop grand\n");
     CloseHandle(hFileIn);    
     return 0;           
ErreurMem:
  printf("erreur memoire\n");
     free(szBuff);
     CloseHandle(hFileIn);
     return 0;      
ErreurSize:
     CloseHandle(hFileIn);
     printf("ERREUR SIZE\n");
     return 0;
Erreur:
  printf("ERREUR\n");
  free(szBuff);
  CloseHandle(hFileIn);
  return 0;
}

HELP PLZ
SVP je part chez mes grand parant a 3H30 et j'ai pas de pc là ba répondez moi VITTTTE
merci

____
[www.sebastien-metthez.com www.sebastien-metthez.com]
le problème vient souvent de l'interface chaise clavier.

2 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
C'est quoi ce mélange stdio et API Win ???

Ecrire lentement, c'est utile ? Ecris en 1 coup et fais un Sleep() 1 seule fois.

ciao...
BruNews, MVP VC++
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Salut,

Pour tout passer en Win32, tu peux utiliser WriteFile pour écrire les caractère un à un.

Pour tout passer en stdio, tu peux utiliser fread pour récupérer le contenu du fichier.