Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

API Windows qui plante

15 réponses
Avatar
Gilles G.
Hello.
J'ai tiré de WD7 API du code, et pourtant je n'obtiens rien d'autre qu'un
plantage sévère.

Le but du jeu est de connaitre X selon le paramétrage GMT + X du système (pour
tenir compte des heures d'été, hiver, etc...)

Voilà le code, si vous avez une idée je suis preneur!

//********************** Déclaration des structures nécessaires à la fonction de
l'API <GetTimeZoneInformation> :
SYSTEMTIME est une structure
wYear est un entier sur 2 octets //Type C : WORD
wMonth est un entier sur 2 octets //Type C : WORD
wDayOfWeek est un entier sur 2 octets //Type C : WORD
wDay est un entier sur 2 octets //Type C : WORD
wHour est un entier sur 2 octets //Type C : WORD
wMinute est un entier sur 2 octets //Type C : WORD
wSecond est un entier sur 2 octets //Type C : WORD
wMilliseconds est un entier sur 2 octets //Type C : WORD
FIN
TIME_ZONE_INFORMATION est une structure
Bias est un entier //Type C : LONG
StandardName est une chaîne fixe sur 32 //Type C : WCHAR
StandardDate est un SYSTEMTIME //SYSTEMTIME est une autre structure
StandardBias est un entier //Type C : LONG
DaylightName est une chaîne fixe sur 32 //Type C : WCHAR
DaylightDate est un SYSTEMTIME //SYSTEMTIME est une autre structure
DaylightBias est un entier //Type C : LONG
FIN
//********************** Fin de la déclaration des
//structures <GetTimeZoneInformation>
RetourFonction est un entier // Type C :DWORD
lpTimeZoneInformation est un entier // Pointeur sur structure
LPTIME_ZONE_INFORMATION

TMZ est un TIME_ZONE_INFORMATION


RetourFonction=API("KERNEL32","GetTimeZoneInformation",lpTimeZoneInformation)

Transfert(&TMZ,lpTimeZoneInformation,Dimension(TMZ))




--
Utilisez notre serveur de news 'news.foorum.com' depuis n'importe ou.
Plus d'info sur : http://nnrpinfo.go.foorum.fr/

10 réponses

1 2
Avatar
Romain PETIT
Gilles G. a écrit :

Le but du jeu est de connaitre X selon le paramétrage GMT + X du système
(pour tenir compte des heures d'été, hiver, etc...)



Tiens.. Ca va pas servir pour un concours ça ?

SYSTEMTIME est une structure
wYear est un entier sur 2 octets //Type C : WORD
wMonth est un entier sur 2 octets //Type C : WORD
wDayOfWeek est un entier sur 2 octets //Type C : WORD
wDay est un entier sur 2 octets //Type C : WORD
wHour est un entier sur 2 octets //Type C : WORD
wMinute est un entier sur 2 octets //Type C : WORD
wSecond est un entier sur 2 octets //Type C : WORD
wMilliseconds est un entier sur 2 octets //Type C : WORD
FIN



Utilise plutôt des "entier *sans signe* sur 2 octets"

TIME_ZONE_INFORMATION est une structure
Bias est un entier //Type C : LONG
StandardName est une chaîne fixe sur 32 //Type C : WCHAR
StandardDate est un SYSTEMTIME //SYSTEMTIME est une autre structure
StandardBias est un entier //Type C : LONG
DaylightName est une chaîne fixe sur 32 //Type C : WCHAR
DaylightDate est un SYSTEMTIME //SYSTEMTIME est une autre structure
DaylightBias est un entier //Type C : LONG
FIN




Utilise plutôt des " *chaines ASCIIZ* sur 32 "

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gilles G.
J'ai essayé de mettre des entiers sans signe et des chaines AsciiZ, boum
plantage idem ;(

Je ne pige pas!


Non ce n'est pas pour un concours, c'est pour un système de détection de passage
qui renvoie les heures en GMT.

--
Utilisez notre serveur de news 'news.foorum.com' depuis n'importe ou.
Plus d'info sur : http://nnrpinfo.go.foorum.fr/
Avatar
Manu
Gilles G. wrote:
Hello.
J'ai tiré de WD7 API du code, et pourtant je n'obtiens rien d'autre
qu'un plantage sévère.

Le but du jeu est de connaitre X selon le paramétrage GMT + X du
système (pour tenir compte des heures d'été, hiver, etc...)



Peux-tu me contacter par mail, je t'enverrai le travail que j'avais fait.
Même si c'est pour un concours ;-)

De tête dans le programme je savais calculer GMT + X (+DST) et oui ne pas
oublier ce dernier ;-)

avec el = elecoest
Avatar
Gégé
Gilles G. wrote:
Le but du jeu est de connaitre X selon le paramétrage GMT + X du système (pour
tenir compte des heures d'été, hiver, etc...)
l'API <GetTimeZoneInformation> :



http://centrewd.free.fr/?page=ficheapi&t=f&n=GetTimeZoneInformation
Avatar
Gilles G.
In article <cbpdts$8qh$,
says...
Gilles G. wrote:
> Le but du jeu est de connaitre X selon le paramétrage GMT + X du système (pour
> tenir compte des heures d'été, hiver, etc...)
> l'API <GetTimeZoneInformation> :

http://centrewd.free.fr/?page=ficheapi&t=f&n=GetTimeZoneInformation



Ca se gauffre pareil.
Il y a peut être quelque chose qui a changé sous XP??
Avatar
Eric LAURENT
Gilles G. a écrit:

In article <cbpdts$8qh$,
says...
Gilles G. wrote:
Le but du jeu est de connaitre X selon le paramétrage GMT + X du
système (pour tenir compte des heures d'été, hiver, etc...)
l'API <GetTimeZoneInformation> :



http://centrewd.free.fr/?page=ficheapi&t=f&n=GetTimeZoneInformation



Ca se gauffre pareil.
Il y a peut être quelque chose qui a changé sous XP??



Bonjour.

Je me suis penché sur le sujet et voici ce que j'ai trouvé et qui
fonctionne. Pour ne pas que ça plante, il faut absolument déclarer les
structures ainsi que la variable TMZ en global.


// A mettre OBLIGATOIREMENT en déclarations globale de l'ouverture de la
fenêtre

SYSTEMTIME est une structure
wYear est un entier sans signe sur 2
wMonth est un entier sans signe sur 2
wDayOfWeek est un entier sans signe sur 2
wDay est un entier sans signe sur 2
wHour est un entier sans signe sur 2
wMinute est un entier sans signe sur 2
wSecond est un entier sans signe sur 2
wMilliseconds est un entier sans signe sur 2
FIN

TIME_ZONE_INFORMATION est une structure
Bias est un entier sans signe sur 2
StandardName est une chaîne fixe sur 32
StandardDate est un SYSTEMTIME
StandardBias est un entier sans signe sur 2
DaylightName est une chaîne fixe sur 32
DaylightDate est un SYSTEMTIME
DaylightBias est un entier sans signe sur 2
FIN

TMZ est un TIME_ZONE_INFORMATION
// ................... Fin des déclarations globales .......................



// A mettre dans ton bouton de traitement

hInst est un entier
hInst = ChargeDLL("KERNEL32.DLL")
Info(AppelDLL32("KERNEL32","GetTimeZoneInformation",&TMZ))
DéchargeDLL(hInst)



---
Eric LAURENT

(enlever nospam.)
---
Avatar
Gilles G.
En globale??

Je n'aurais jamais trouvé ça!

Merci de ton aide!

--
Utilisez notre serveur de news 'news.foorum.com' depuis n'importe ou.
Plus d'info sur : http://nnrpinfo.go.foorum.fr/
Avatar
Gilles G.
Well well...
Suite et pas encore fin ;(

L'API ne plante plus, mais quelque chose cloche dans les structure, je récupère
n'importe quoi à la place des données correctes...

Je cherche, mais si quelqu'un a une idée...

--
Utilisez notre serveur de news 'news.foorum.com' depuis n'importe ou.
Plus d'info sur : http://nnrpinfo.go.foorum.fr/
Avatar
Peter
Gilles G. wrote:

J'ai tiré de WD7 API du code, et pourtant je n'obtiens rien d'autre qu'un
plantage sévère.



Bonjour,

The size of the TIME_ZONE_INFORMATION structure is wrong.
(a WCHAR <> asciiz string on 32 bytes, must be 64 bytes > total 172)

Try with an array.

***
TIME_ZONE_INFORMATION is structure
Bias is int
StandardName is fixed array of 32 int on 2 bytes
StandardDate is SYSTEMTIME
StandardBias is int
DaylightName is fixed array of 32 int on 2 bytes
DaylightDate is SYSTEMTIME
DaylightBias is int
END
***

--
Peter
Avatar
Manu
tu as bien reçu mon miniprojet ?

--
Emmanuel
1 2