Compilation OK, Execution NOK

fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 2 nov. 2007 à 11:11
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 6 nov. 2007 à 10:55
Salut a tous,
J'ai réalisé un programme en C (win32) sous embedded visual c++, pour un pocket PC, donc windows CE.
 Cependant, le programme est également voué a etre utilisable sur PC, or le simulateur utilisé ne peut etre agrandi, c'est pourquoi j'ai cherché à compilé pour Windows "normal" sous Dev C++

J'ai eu quelques trucs a modifié, et je finis par compiler. Le probleme, lorsque je lance l'exe, j'ai une magnifique fenetre d'erreur Microsoft qui s'affiche...
                        "Projet2.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."

Quelqu'un a-t-il deja eu un probleme similaire? une idée sur la provenance du probleme?
Merci d'avance!

17 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
2 nov. 2007 à 11:20
C'est quand que ca plante? Mets voir le code de la partie incriminée. Sinon tu as essayé d'exécuter avec ou sans Debug? Parce que normalement ce genre d'erreur ca n'arrive pas en debug, le compilo s'arrête à l'endroit défaillant.
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
2 nov. 2007 à 11:26
Salut juju12, merci pour la rapidité!!

SI j'essaye de debugger, il m'affiche direct une erreur  : "Une violation d'acces (erreur de segmentation) est apparue dasn votre programme"
Le compilateur lui ne me dis rien...
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
2 nov. 2007 à 13:19
On dirait un problème de mémoire...
Est-ce-que le debugger s'arrête à un endroit précis?
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
2 nov. 2007 à 16:05
Re juju,
Eh non , meme si je me mets sur la premiere ligne et que je fais "Executer jusqu'au curseur, le message se declenche...
Dois-je avoir peur??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
2 nov. 2007 à 17:56
t'ecris la ou ta ps le droit

morceau de code ?

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
2 nov. 2007 à 18:37
Ben s'il plante avant d'avoir exécuté la première ligne tu peux avoir peur je pense...
Est-ce-que tu utilises des libs spéciales, des dlls spéciales, une CRT spéciale (comme ca vient de CE) ?
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
2 nov. 2007 à 19:29
Il ya peu etre des problèmes avec tes objets "static" si tu en as ... ou une variable globale quelque part.
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
3 nov. 2007 à 12:23
re a tous,
je regarde ca des lundi matin

oui comme lib j'utilise winsock pour evc++, sous devc++ il y a son equivalent lib... que j'ai ajouté (sinon ca compila pas evidemment)
mais pourquoi ca compile et le programme se lance alors en windows CE?

merci a vous, je vous tiens au courant ( ps : j'ai pas reussi a compiler sinon avec visual c++ express)
0
mezaya Messages postés 202 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 6 mars 2010
3 nov. 2007 à 12:30
Est ce que tu check toute les exceptions lancées ?

Voili,Voilou
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
3 nov. 2007 à 13:34
nan mais je passe peut etre pour un emmerdeur mais sincerement avec un morceau de code ca irais plus vite , ne serais ce que les premiere lignes

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
4 nov. 2007 à 09:37
Re!
pas de pb sheorogath, je poste un bout de code dés que possible demain matin
par contre en ce qui concerne les exception, euh c'est du C donc je vois pas trop ce que je dois"checker" en plus?
merci a vous, j'espere que ca vient encore d'une betise de ma part, ce seraii plus rassurant!
A demain!
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
5 nov. 2007 à 09:24
Re salut a tous,
en essayant de faire du pas a pas, ca plante encore mais je pense aovir trouver certaines causes a mes problemes, notamment au niveau de mes fonctions de conversions utiles pour evc++, peut etre qu'elles ne le sont pas sous devc++ pour du Windows?
// cette fonction permet de convertir une chaîne ANSI en UniCode
// en entrée : chaîne en ANSI
// return la chaîne en UniCode.
unsigned short*  ConvertAnsiToUnicode(char* szAnsi)
{
    //Trouver la taille finale pour réserver le buffer
    int Size = MultiByteToWideChar (CP_ACP, 0, szAnsi, -1, NULL, 0) ;
    LPWSTR wUnicode;// = new WCHAR[Size];
    //effectuer la conversion
    MultiByteToWideChar (CP_ACP, 0, szAnsi, -1, wUnicode, Size) ;
    return wUnicode;
}

// cette fonction permet de convertir une chaîne UniCode en ANSI
// en entrée : la chaîne en UniCode.
// return chaîne en ANSI
char* ConvertUnicodeToAnsi(TCHAR* wUnicode)
{
    int bTemp=(sizeof(wUnicode)/sizeof(TCHAR));
    int Size = WideCharToMultiByte(CP_ACP, 0, wUnicode, -1, NULL, 0, NULL, &bTemp) ;
    LPSTR szAnsi;// = new char[Size];
    WideCharToMultiByte(CP_ACP, 0, wUnicode, -1, szAnsi, Size, NULL, &bTemp) ;
    return szAnsi;
}

Dois-je ne plus les utiliser? j'espere ne pas avoir trop a retoucher a mon code...
De plus, j'avais fait quelques modifs, notamment pour les ouverture/ecritures de fichiers :
FILE *file=_tfopen(ConvertAnsiToUnicode(cheminFichierBidon), TEXT("wt"));
    fclose(file);
devient :
FILE *file =fopen(ConvertAnsiToUnicode(cheminFichierBidon), "wt");
    fclose(file);
Est-ce correct?
Je pense que je vais reprndre mes fonctions une a une...
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
6 nov. 2007 à 10:22
RE salut!
j'ai fais du bon vieux pas a pas, cette fois ma requete est bien lancée, et le plantage intervient au  moment de la création de la fenetre !
int WINAPI WinMain(    HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
    MSG msg;
    HACCEL haccel;
    ACCEL accel;
    accel.fVirt = FVIRTKEY|FSHIFT;
    accel.key = VK_TAB;                                // code de la touche Tab
    accel.cmd = MYACCEL;
    haccel = CreateAcceleratorTable(&accel, 1);        // creation du raccourci "shift + tab"
   
    hinst=hInstance;

    char** tableau=NULL;
    LancerParsing(tableau);

    MyRegisterClass(hInstance, TEXT("Projet_Falcon"));
    hWndMain = CreateWindow(TEXT("Projet_Falcon"),TEXT(""),WS_VISIBLE,CW_USEDEFAULT,
                            CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL, NULL,hInstance, NULL);
    if (!hWndMain)
    {   
        return FALSE;
    }
    ShowWindow(hWndMain, nCmdShow);
    UpdateWindow(hWndMain);

    while (GetMessage(&msg, NULL, 0, 0))
    {
        if(!TranslateAccelerator(msg.hwnd, haccel, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
//    DestroyAcceleratorTable(haccel);
    return msg.wParam;
}

En rouge : la violation d'acces est declenchée ici... une idée?
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
6 nov. 2007 à 10:47
Bon en tranformant en CreateWindowEx, le processus de DevC++ monte a 99% de mes ressources , et rien ne se produit...
Vous avez dit bizarre?
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
6 nov. 2007 à 10:53
Bon en tranformant en CreateWindowEx, le processus de DevC++ monte a 99% de mes ressources , et rien ne se produit...
Vous avez dit bizarre?
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
6 nov. 2007 à 10:54
Bon en tranformant en CreateWindowEx, le processus de DevC++ monte a 99% de mes ressources , et rien ne se produit...
Vous avez dit bizarre?
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
6 nov. 2007 à 10:55
Bon cette fois c'est bon , plus d'erreur, et pourtant rien ne s'affiche! voici ma fonction Winmain :
int WINAPI WinMain(    HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
    MSG msg;
    HACCEL haccel;
    ACCEL accel;
    accel.fVirt = FVIRTKEY|FSHIFT;
    accel.key = VK_TAB;                                // code de la touche Tab
    accel.cmd = MYACCEL;
    haccel = CreateAcceleratorTable(&accel, 1);        // creation du raccourci "shift + tab"
   
    hinst=hInstance;

    char** tableau=NULL;
    LancerParsing(tableau);

    MyRegisterClass(hInstance, TEXT("Projet_Falcon"));
    hWndMain = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           "Projet Test",         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );
//    hWndMain = CreateWindow(TEXT("Projet_Falcon"),TEXT(""),WS_VISIBLE,CW_USEDEFAULT,
    //                        CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL, NULL,hInstance, NULL);
    if (!hWndMain)
    {   
        return FALSE;
    }
    ShowWindow(hWndMain, nCmdShow);
    UpdateWindow(hWndMain);

    while (GetMessage(&msg, NULL, 0, 0))
    {
        if(!TranslateAccelerator(msg.hwnd, haccel, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
//    DestroyAcceleratorTable(haccel);
    return msg.wParam;
}

Je comprends vraiment pas pourquoi ca ne fait rien
0
Rejoignez-nous