Debutant , mais ou est mon erreur ?

Debutant , mais ou est mon erreur ? - C++ - Programmation

Marsh Posté le 23-05-2003 à 09:03:08    

static string derniereErreur[BUFSIZ];
static ILocalisateur* pLocalisateur;
 
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
 
    //Code generant exception
    try
    {
        pLocalisateur=new (LocalisateurSycom);
        pLocalisateur->GetAbscisse();
        delete pLocalisateur;
    }
    //Attraper exeception
    catch (ExceptionSycom& e)
    {
     derniereErreur=e._message;
    }
}
 
Sachant que j'ai une classe qui s'apelle ExceptionSycom où message est declaré comme ceci const string _message;
Borland me fait une erreur de type:
Lvalue nécessaire sur derniereErreur=e._message;

Reply

Marsh Posté le 23-05-2003 à 09:03:08   

Reply

Marsh Posté le 23-05-2003 à 09:05:07    

static string derniereErreur[BUFSIZ];
derniereErreur=e._message;  
 
tu assigne un string a un tableau de string, donc evidemment, ca pete

Reply

Marsh Posté le 23-05-2003 à 09:06:32    

ha oui suis-je bete
marci chrisbk

Reply

Marsh Posté le 23-05-2003 à 09:06:44    

t'es sur de savoir ce que tu fais  
 
new (LocalisateurSycom);

Reply

Marsh Posté le 23-05-2003 à 09:07:57    

ah oui, si visual connait ça, en C++, on utilise pas le mot clef static, mais des namespaces anonymes

Reply

Marsh Posté le 23-05-2003 à 09:08:54    

J'ai un petit soucis , il faut que je fasse un transtypage en passant du c++ en c. Donc faut que je convertisse un string donc du c++ en un char. Comment puis-je faire ?

Reply

Marsh Posté le 23-05-2003 à 09:09:21    

++Taz a écrit :

ah oui, si visual connait ça, en C++, on utilise pas le mot clef static, mais des namespaces anonymes


 
il a dit qu'il programmait sous borland :O :D

Reply

Marsh Posté le 23-05-2003 à 09:09:38    

roromaino a écrit :

J'ai un petit soucis , il faut que je fasse un transtypage en passant du c++ en c. Donc faut que je convertisse un string donc du c++ en un char. Comment puis-je faire ?


 
std::string::c_str()


Message édité par chrisbk le 23-05-2003 à 09:09:51
Reply

Marsh Posté le 23-05-2003 à 09:13:00    

La j'ai pas suivi "std::string::c_str()". peut-tu me l'expliquer . En fait faut que je transforme  _message qui est une string en char derniereErreur[256].

Reply

Marsh Posté le 23-05-2003 à 09:14:46    

roromaino a écrit :

La j'ai pas suivi "std::string::c_str()". peut-tu me l'expliquer . En fait faut que je transforme  _message qui est une string en char derniereErreur[256].


 
 
strcpy(derniereErreur,_message.c_str());
 
 
prie juste pour que ton _message ait moins de 255 caracteres, ou test ca avant, ou utilise strncpy

Reply

Marsh Posté le 23-05-2003 à 09:14:46   

Reply

Marsh Posté le 23-05-2003 à 09:17:16    

ok la je capte, oui normalement c bon il depassera pas 255 caractere. Merci de ton aide ca me permet d'avancer tout en apprennant.

Reply

Marsh Posté le 23-05-2003 à 11:00:59    

J'ai une autre erreur que j'arrive pas a resoudre si quelqu'un peut m'aider..
 
int WINAPI DllEntryPoint(hinst ,DLL_PROCESS_ATTACH ,lpReserved)
{
   derniereErreur=0;
   pLocalisateur=0;
   return 1;
}
 
voila sur la ligne de commande  
int WINAPI DllEntryPoint(hinst ,DLL_PROCESS_ATTACH ,lpReserved)
borland me dit que :
- Symbole 'hinst' non défini
- ) attendue

Reply

Marsh Posté le 23-05-2003 à 11:03:10    

ouais la fo apprendre le C++ hein ? T'as vu la gueule de ta fonction ?

Reply

Marsh Posté le 23-05-2003 à 11:06:15    

justement je suis en train d'apprendre

Reply

Marsh Posté le 23-05-2003 à 11:07:16    

tu melange nom des parametres et type des parametre
le mieux c de tjs mettre les deux, si tu veux mon avis

Reply

Marsh Posté le 23-05-2003 à 11:08:38    

ha donc comme ca alors :
int WINAPI DllEntryPoint(HINSTANCE hinst ,DWORD DLL_PROCESS_ATTACH ,LPVOID lpReserved)

Reply

Marsh Posté le 27-05-2003 à 08:43:38    

C'est pas "mieux", il faut toujours mettre le type de donnée (obligatoire) et le nom de l'argument (facultatif mais conseillé...) dans le prototype de la fonction

Reply

Sujets relatifs:

Leave a Replay

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