Pb Kernel32

Résolu
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006 - 21 juin 2005 à 21:09
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006 - 26 juin 2005 à 14:37
Pb passage win Xp -> 98.

Bonjour,



Alors voilà, j'ai développé un petit programme en C que j'ai compilé sous dev-C++ (ds mon environnement XP).

Il s'execute et marche impèc sous XP sur n'importe quel ordi.



Mais qd j'essaie de le faire touner ss win 98, il plante de suite avec
un message d'erreur qui dit que install (c le nom de mon exe) a
effectué une opération non conforme et rencontré une erreur ds
Kernel32.dll



Donc cette dll a surement évoluée depuis 98.

Mon pb, comment savoir d'où vient le pb ds mon code actuel (sans
commenter et décommenter le tt ligne par ligne parc qu'y en a qd même
pas mal)?

Comment puis je y remédier ?

Où est le lien entre le code en langage C ou C++ et cette dll windows ?



Merci par avance de vos réponses

4 réponses

Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
22 juin 2005 à 21:31
Tu pourrais tester avec ShellExecute au lieu de CreateProcess.
3
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
21 juin 2005 à 23:06
tu fais une recherche des fonctions apis kernel32.dll que tu utilise
sur msdn (en tappant la fonction dans google ?), une note si besoin se
trouve en bas de la page pour les windows antérieures :



"Windows 95/98/Me ..."
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
22 juin 2005 à 20:32
Merci.



Les fonctions liées à Kernel32 que j'utilise sont:



- CreateProcess appelée tout simplement comme ceci :



CreateProcess( cPath, // module name ( or use command line).


NULL, //
Command line.


NULL,
// Process handle not inheritable.


NULL,
// Thread handle not inheritable.


FALSE,
// Set handle inheritance to FALSE.


0,
// No creation flags.


NULL,
// Use parent's environment block.


NULL,
// Use parent's starting directory.


&si,
// Pointer to STARTUPINFO structure.

&pi )

avec char cPath[128]; que je remplis correctement puisqu'il marche bien sous XP.

l'api de windows est assez obscure sur ce point, y a des remarques un peu partt pr les différentes versions windows.

je ne pense pas que le prob soit là parce qu'il foire ds un cas où cette fonction n'est pas appelée mais bon ...



Est ce que le pb peut qd même venir de là ?



Et GetConsoleTitle

comme ça:



CHAR ConsoleTitle[128];

DWORD dwCharsRead;



dwCharsRead = GetConsoleTitle(ConsoleTitle, sizeof(ConsoleTitle));



Mais à voir l'api, i semble pas y avoir de prob de version windows...



Et enfin Sleep(1000); qui semble pas avoir de prob de versions non plus ...



Est ce qu'une partie du code incompatible qui ne serait pas éxécuter pourrait qd même faire planter le prog ?



Je ne pourrais que tester sur win98 en fin de semaine, c'est pour ça que je repose cette question.

Merci d'avance pour les réponses.
0
UnderFlow Messages postés 34 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 6 juin 2006
26 juin 2005 à 14:37
Merci bcp pour tes réponses zootella.



En fait, j'ai trouvé d'où vennait mon prob et ça a rien à voir avec tt ça.

Ca vient du fait que qd tu fais:

>commande_non_reconnue>fichier_de_stockage.txt



sous win Xp il crée bien le fichier alors que sous 98 pas et j'avais un pb de file descriptor par la suite enfin bref...



@++
0
Rejoignez-nous