HeavenForsaker
Messages postés223Date d'inscriptionmercredi 13 juillet 2005StatutMembreDernière intervention 8 août 2011
-
1 sept. 2006 à 13:47
HeavenForsaker
Messages postés223Date d'inscriptionmercredi 13 juillet 2005StatutMembreDernière intervention 8 août 2011
-
1 sept. 2006 à 19:34
Bonjour,
Je suis entrain de coder une fonction permettant de récuperer le temps restant avant la prochaine journée, pour se faire j'utilise la fonction SetWaitableTimer (le programme n'a pas de fenêtre), le problème c'est que cette fonction reçoit comme paramètre un nombre 64 bits, et les nombres 64 bits ne sont pas supportés par mon EDI (CodeBlocks).
Voila le code :
SYSTEMTIME st;
LARGE_INTEGER li;
//Récupération de la date locale.
GetLocalTime(&st);
//864000000000 = 24heures en nanosecondes, On soustrait 24h à la date actuelle.
li.QuadPart = 864000000000 - (((stToday.wHour * 3600000) + (stToday.wMinute * 60000) + (stToday.wSecond * 1000) + stToday.wMilliseconds) * 10000);
SetWaitableTimer(hTimer, &li, 0, NULL, NULL, 0);
Voila donc c'est la ligne d'affectation li.QuadPart qui coince puisque je ne peux pas utiliser les entiers 64 bits et je ne sais pas comment transformer la date actuelle 64 bits en 2*32bits pour l'affecter à la structure LARGE_INTEGER
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 1 sept. 2006 à 15:35
Il y a un type d'entier 64 bits avec GCC ou MinGW : le type long long ou unsigned long long. Ils sont l'équivalent du __int64 de VC++.
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 1 sept. 2006 à 15:56
Tu peut télécharger le compilateur de VC++ 2003 et le mettre avec CodeBlocks sans problème. Le nom est Visual C++ Toolkit 2003, mais le téléchargement n'est plus sur le site de MS, je pense que vecchio56 en a une copie, faudra lui demander.
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
Vous n’avez pas trouvé la réponse que vous recherchez ?
HeavenForsaker
Messages postés223Date d'inscriptionmercredi 13 juillet 2005StatutMembreDernière intervention 8 août 2011 1 sept. 2006 à 16:05
Oui merci [auteurdetail.aspx?ID=535688 nightlord666] je l'ai deja, je l'avais testé mais ça buggais avec CodeBlocks, je vais réessayer. Saleté d'EDI, ça se voit que c'est gratos tiens...
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 1 sept. 2006 à 16:30
Visual C++ Express 2005 est gratos aussi ^^.
Je ne comprends pas que le long long ne soit pas accepté... Normalement ça marche sous GCC ou MinGW. Donne moi le message d'erreur du compilo si tu l'utilise s'il te plait.
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
HeavenForsaker
Messages postés223Date d'inscriptionmercredi 13 juillet 2005StatutMembreDernière intervention 8 août 2011 1 sept. 2006 à 19:34
lol ouai
Visual C++ Express 2005 doit deja être moins buggé, CodeBlocks en est encore qu'à la version 1.0RC2.
C'est bien MinGW le compilo par défaut de CodeBlocks il me met l'erreur :
"integer constant is too large for "long" type"
quelque soit le type que j'utilise
J'ai essayé de mettre Visual C++ Toolkit 2003 comme compilo à la place met ya un gros bug il me vire le debugger (gdb), impossible de faire fonctionner les 2 en même temps et il veux pas compiler pour je ne sait qu'elle raison...
Enfin bon c'est pas grave je vais changer d'EDI (pour la troisième fois ), et basculer sous
Visual C++ Express 2005, Microsoft ya que ça de vrai ! (lol)