Une erreur bien génante en C++

Une erreur bien génante en C++ - Programmation

Marsh Posté le 27-06-2002 à 17:33:13    

Code :
  1. //---------------------------------------------------------------------------
  2. void __fastcall TForm1::FormCreate(TObject *Sender)
  3. {
  4. LPCTSTR textd = "CHAINE";
  5.     {
  6.     static HANDLE FICHIER;
  7.       char  szBuf[128];
  8.       DWORD dwRead;
  9.       FICHIER = CreateFile( "PROTECT.RXT", GENERIC_READ | GENERIC_WRITE,
  10.                                            0, NULL, OPEN_ALWAYS,
  11.                                            FILE_ATTRIBUTE_NORMAL, NULL );
  12.                                            DWORD dwWritten;
  13.                                                   WriteFile( FICHIER, textd,3,
  14.                                   &dwWritten, NULL );
  15.       SetFilePointer( FICHIER, 0, NULL, FILE_BEGIN );
  16.        ReadFile( FICHIER, szBuf, 3,
  17.                                                 &dwRead, NULL );
  18.                                              szBuf=Edit1->Text.c_str();
  19.                                              CloseHandle( FICHIER );
  20.      
  21.     }
  22. }
  23. //---------------------------------------------------------------------------


Avec comme erreur  
[C++ Error] Unit1.cpp(36): E2277 Lvalue required  
POur  
szBuf=Edit1->Text.c_str();
Aidez moi svp merci


Message édité par remixgame le 27-06-2002 à 18:37:35
Reply

Marsh Posté le 27-06-2002 à 17:33:13   

Reply

Marsh Posté le 27-06-2002 à 18:19:56    

Rien


Message édité par remixgame le 27-06-2002 à 18:36:50
Reply

Marsh Posté le 27-06-2002 à 18:29:29    

mets un theme a ton topic plizz


---------------
All we need is a soul revolution
Reply

Marsh Posté le 27-06-2002 à 18:52:44    

Code :
  1. if(Edit1->Text.Length < 128)
  2. {
  3.      strcpy(szBuf,Edit1->Text.c_str());
  4. }
  5. else
  6. {
  7.     szBuf[0] = '\0';
  8. }


Message édité par LetoII le 27-06-2002 à 18:53:18

---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 18:59:32    

Code :
  1. if(Edit1->Text.Length < 128)
  2. {
  3.     strcpy(szBuf,Edit1->Text.c_str()); 
  4. }
  5. else
  6. {
  7.    szBuf[0] = '\0';
  8. }


Un nouveau message d'erreur
[C++ Error] Unit1.cpp(36): E2235 Member function must be called or its address taken
Pk ca amrche pas  :cry:

Reply

Marsh Posté le 27-06-2002 à 19:07:20    

oups pour une fois qu'ils respectent les concepts objet...
 

Code :
  1. if(Edit1->Text.Length() < 128)
  2. {
  3.     strcpy(szBuf,Edit1->Text.c_str()); 
  4. }
  5. else
  6. {
  7.    szBuf[0] = '\0';
  8. }


---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 19:11:01    

letoII a écrit a écrit :

oups pour une fois qu'ils respectent les concepts objet...




 
ils les repectent souvent, mais en général c'est avec des "property" (un truc venant de Delphi), c'est-à-dire un "truc" qui permet d'associer une méthode de lecture et une méthode d'écriture.
Donc on accède pas directement à l'attribut (puisqu'on passe par les méthodes Set/Get), mais ça s'utilise comme un attribut.


Message édité par antp le 27-06-2002 à 19:11:17

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-06-2002 à 19:14:41    

Ben justement, c bien ça que je leur reproche :)


---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 19:17:18    

Oui merci ya pu d'erreur mais il n'affiche toujours rien dans edit ?? :eek2:  
Le fichier est bien ecrit  

Code :
  1. void __fastcall TForm1::FormCreate(TObject *Sender)
  2. {
  3. LPCTSTR textd = "CHAINE";
  4.     {
  5.    static HANDLE FICHIER;
  6.       char  szBuf[4];
  7.       DWORD dwRead;
  8.       DWORD dwWritten;
  9.       FICHIER = CreateFile( "PROTECT.RXT", GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL );
  10.       WriteFile( FICHIER, textd,3,&dwWritten, NULL );
  11.       SetFilePointer( FICHIER, 0, NULL, FILE_BEGIN );
  12.        ReadFile( FICHIER, szBuf, 3,&dwRead, NULL );       if(Edit1->Text.Length() < 4)
  13.        {
  14.         strcpy(szBuf,Edit1->Text.c_str());
  15.        }
  16.         else
  17.        {
  18.        szBuf[0] = '\0';
  19.        }
  20.       CloseHandle( FICHIER );
  21. // OPERATION SUR FICHIER
  22. // CONDITION
  23. // VARIABLE


PAs d'erreur rien  :sweat:  
   
     
 

Reply

Marsh Posté le 27-06-2002 à 19:19:59    

normal:

Code :
  1. Edit1->Text = szBuf;


 


---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 19:19:59   

Reply

Marsh Posté le 27-06-2002 à 19:25:44    

Ca marche toujours pas  :ouch:  
Ca ne marque rien  
il a juste supprimé le text de edit  

Code :
  1. void __fastcall TForm1::FormCreate(TObject *Sender)
  2. {
  3. LPCTSTR textd = "CHAINE";
  4.     {
  5.     static HANDLE FICHIER;
  6.       char  szBuf[4];
  7.       DWORD dwRead;
  8.       FICHIER = CreateFile( "PROTECT.RXT", GENERIC_READ | GENERIC_WRITE,
  9.                                            0, NULL, OPEN_ALWAYS,
  10.                                            FILE_ATTRIBUTE_NORMAL, NULL );
  11.                                            DWORD dwWritten;
  12.                                                   WriteFile( FICHIER, textd,3,
  13.                                   &dwWritten, NULL );
  14.       SetFilePointer( FICHIER, 0, NULL, FILE_BEGIN );
  15.        ReadFile( FICHIER, szBuf, 3,
  16.                                                 &dwRead, NULL );
  17.                                                if(Edit1->Text.Length() < 4)
  18.   {
  19.         strcpy(szBuf,Edit1->Text.c_str());
  20.   }
  21.   else
  22.   {
  23.        szBuf[0] = '\0';
  24.   }
  25.                                            Edit1->Text = szBuf;
  26.                                              CloseHandle( FICHIER );
  27.     }
  28. }
  29. //---------------------------------------------------------------------------

Reply

Marsh Posté le 27-06-2002 à 19:31:49    

Code :
  1. void __fastcall TForm1::FormCreate(TObject *Sender)
  2.   {
  3.     char textd[] = "CHAINE";
  4.     HANDLE fichier;
  5.     char          buffer[4];
  6.     long          read;
  7.     fichier = CreateFile( "PROTECT.RXT", GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL );
  8.     long written;
  9.     WriteFile( FICHIER, textd,3,&written, NULL );
  10.      
  11.     SetFilePointer( FICHIER, 0, NULL, FILE_BEGIN );
  12.     ReadFile( fichier, buffer, 3,&read, NULL );
  13.      
  14.    
  15.     Edit1->Text = buffer;
  16.    
  17.        
  18.     CloseHandle( fichier);
  19.      
  20. }


Message édité par LetoII le 27-06-2002 à 19:31:59

---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 19:35:17    

5 erreurs  

Code :
  1. LPCTSTR textd = "CHAINE";
  2.     {
  3.     static HANDLE FICHIER;
  4.      char textd[] = "CHAINE";
  5.    
  6.         HANDLE fichier;
  7.         char          buffer[4];
  8.         long          read;
  9.    
  10.         fichier = CreateFile( "PROTECT.RXT", GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL );
  11.         long written;
  12.         WriteFile( FICHIER, textd,3,&written, NULL );
  13.         SetFilePointer( FICHIER, 0, NULL, FILE_BEGIN );
  14.         ReadFile( fichier, buffer, 3,&read, NULL );
  15.        
  16.         Edit1->Text = buffer;
  17.              
  18.         CloseHandle( fichier);
  19.     }
  20. }


[C++ Error] Unit1.cpp(32): E2034 Cannot convert 'long *' to 'unsigned long *'
[C++ Error] Unit1.cpp(32): E2342 Type mismatch in parameter 'lpNumberOfBytesWritten' (wanted 'unsigned long *', got 'long *';)
[C++ Error] Unit1.cpp(35): E2034 Cannot convert 'long *' to 'unsigned long *'
[C++ Error] Unit1.cpp(35): E2342 Type mismatch in parameter 'lpNumberOfBytesRead' (wanted 'unsigned long *', got 'long *';)

Reply

Marsh Posté le 27-06-2002 à 19:36:54    

change les long en unsigned long!
T'as déja fais un peu de programation?


---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 19:45:18    

En faite je commence en c++ je fasais du c

Reply

Marsh Posté le 27-06-2002 à 19:47:02    

MErci ca marche

Reply

Marsh Posté le 27-06-2002 à 19:54:19    

heu desole d'encore vous embetez  
mais
char buffer[256];
char cool[] = buffer+1;
char textd[] = cool;
 
pourquoi j'ai comme message d'erreur  
[C++ Error] Unit1.cpp(31): E2034 Cannot convert 'char *' to 'char[]'
[C++ Error] Unit1.cpp(32): E2034 Cannot convert 'char *' to 'char[]'
 

Reply

Marsh Posté le 27-06-2002 à 20:01:58    

T'as fait du C avant? Vraiment? Nan, c une blague?
 
Je serai toi je commencerai par me payer un bon bouquin sur le C et un autre sur le C++.
 
C normal que ça marche pas, tu fais nimporte quoi.
 

Code :
  1. char  buffer[256];
  2. char *cool  = buffer+1;
  3. char *textd = cool;


 


---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 20:05:38    

Ouai tu me conseille quoi j'ai bien la bible du c c++ mais c'est pas terible ?

Reply

Marsh Posté le 27-06-2002 à 20:08:49    

Elle est bien pour apprendre l'api windows.
Sin non pour le C t'as Le language C de Kernigham et Ritchie
 
Pour le C++ je sais pas (j'utilise mes cours :) )


---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 20:27:44    

Je suis encore collegien je risque pas d'utiliser mes cours LOL  :pt1cable:

Reply

Marsh Posté le 27-06-2002 à 20:30:42    

:lol:


---------------
Le Tyran
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed