Bonjour à tous.

Voilà, je cherche à réaliser un petit utilitaire de remplacement de charactère. En effet je dois traiter des fichiers textes contenant 320 000 lignes de données non misent en forme . J'avais déjà réalisé cet utilitaire sur une version de Visual (et ça fonctionnait nickel). Je suis maintenant sous la version 8.0.50727.42 et je rencontre une erreure ...
Voici 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <Commdlg.h>
#include <Wtsapi32.h>
 
//FILE* fopen(const char* , const char* );
int WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, int);
 
OPENFILENAME ofn ; //variable globale
char szFile[100] ;
 
void main(int argc, char *argv[])
{
	char caractereActuel;
   // L'ERREURE EST A LA LIGNE SUIVANTE !
	WinMain (NULL, NULL, (LPWSTR) GetCommandLine(), 5); // L 17
 
    FILE* fichier1 = NULL;
	FILE* fichier2 = NULL;
 
    fichier1 = fopen(szFile, "r");
	fichier2 = fopen("data.txt", "w");
 
    if (fichier1 != NULL)
    {
        caractereActuel = fgetc(fichier1); // On initialise caractereActuel
 
	// Boucle de lecture des caractères un à un
	while (caractereActuel != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
	{
	    printf("%c", caractereActuel); // On affiche le caractère stocké dans caractereActuel
		if (caractereActuel ==' ') fputc('\t', fichier2);
		else fputc(caractereActuel, fichier2);
  	    caractereActuel = fgetc(fichier1); // On lit le caractère suivant
	}
 	fclose(fichier1);
	fclose(fichier2);
    }
    else
    {
        // On affiche un message d'erreur si on veut
        printf("Impossible d'ouvrir le fichier Waveform.txt");
    }
	remove(szFile);
	rename("data.txt", szFile);
}
 
 
int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nCmdShow )
{
 
    // open a file name
	ZeroMemory( &ofn , sizeof( ofn));
	ofn.lStructSize = sizeof ( ofn );
	ofn.hwndOwner = NULL  ;
	ofn.lpstrFile = szFile ;
	ofn.lpstrFile[0] = '\0';
	ofn.nMaxFile = sizeof( szFile );
	ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
	ofn.nFilterIndex =1;
	ofn.lpstrFileTitle = NULL ;
	ofn.nMaxFileTitle = 0 ;
	ofn.lpstrInitialDir=NULL ;
	ofn.Flags = OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST ;
 
	GetOpenFileName( &ofn );
 
	// Now simply display the file name 
	MessageBox ( NULL , ofn.lpstrFile , "File Name" , MB_OK);
	return 0;
}
L'erreur est : error C2664: 'WinMain'*: impossible de convertir le paramètre 3 de 'LPWSTR' en 'LPSTR' à la ligne 17

Merci de me donner l'explication à cette (drôle) d'erreure !

@++