fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention 3 avril 2008
-
2 nov. 2007 à 11:11
fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDerniè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!
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 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.
fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDerniè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...
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 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) ?
fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDerniè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)
fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDerniè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!
fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDerniè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...
fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDerniè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"
fredsor
Messages postés198Date d'inscriptionlundi 24 avril 2006StatutMembreDerniè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);