petit pb pour obtenir la date systeme [C 16bits] - Programmation
Marsh Posté le 27-07-2001 à 12:26:29
El_gringo a écrit a écrit : Ce problème est tout gentil par rapport aux merdes énormes que j'avais jusqu'a hier, ms g besoin d'aide qd même ! En fait je suis sous 16bits, et g pas la doc qui correspond (g la MSDN Library récente !) alors c pas facile... En fait g besoin de la date systeme, je doit la stocker dans un espace mémoire pointé par un LPSTR. J'ai un problème parce que pour avoir la date système sous forme d'une chaine de char, je n'ai trouvé que _strtime qui me rend un pointeur near -->j'arrive pas à stocker ds la zone mémoire que je veux (je suis pas fort du tout en 16bits, c ma 1ère fois. Et ma dernière !). Vous pouvez résoudre mon pb de 2 manières: - en me donnant une fonction qui met la date système dans une chaine et rend un pointeur Far vers cette chaine. - en me donnant une fonction qui permet de copier le contenu de la mémoire pointée par un near, dans un far (LPSTR ou autre). En gros, en m'aidant à convertir un char* en un LPSTR !!! Merci... c chiant de rester bloqué sur des conneries comme ça... J'exècre le 16bits ! |
Marsh Posté le 27-07-2001 à 12:27:16
En gros, en m'aidant à convertir un char* en LPSTR...
Merci...
Marsh Posté le 27-07-2001 à 12:35:14
Ca marche pas en s'inspirant de ma fonction (16 & 32 aussi)
void ChargeDatHeurNow(short NumSp)
{
// charge la date et l'heure actuelle pour le spectre de dimension NumSp (>= 1)
struct date d;
struct time t;
char Date[11], Heure[9];
getdate(&d);
sprintf(Date, "%02i/%02i/%4i", d.da_day, d.da_mon, d.da_year);
gettime(&t);
sprintf(Heure, "%02i:%02i:%02i", t.ti_hour, t.ti_min, t.ti_sec);
...
}
Marsh Posté le 27-07-2001 à 12:36:09
Passe par les handles memoire et tu auras ton LPSTR (je t'avais indique comment dans un autre post).
Je te rapelle qu'en 16 bit sous windows, on utilisait a fond la caisse les handles memoire.
A+,
Marsh Posté le 27-07-2001 à 12:55:35
http://forum.hardware.fr/sqlforum/ [...] cache=&p=1
Si on a LPSTR Toto[xx], et char Truc[yy], strcpy(Toto, Truc); (voire par strncpy() ça marche pas ? Peut-être que mon compilateur (BC3.1) est complaisant avec moi.
Marsh Posté le 27-07-2001 à 12:59:15
Ca depend du modele memoire dans lequel tu programme.
(Y'avait small, compact, far, et un 4eme (medium? mixed?))
A+,
[edtdd]--Message édité par gilou--[/edtdd]
Marsh Posté le 27-07-2001 à 13:15:23
Sous Win 3.11, je suis toujours en modèle "large" (par défaut, par habitude et "négligence" ).
Marsh Posté le 29-07-2001 à 02:42:27
gilou> Il y en avait six: Tiny, Small, Compact, Medium, Large, et Huge. Tu utilisais l'un ou l'autre selon que tu avais besoin de plus ou moins de 64 Ko pour la pile, le tas, le code, aucun des 3 trois, ou certains des 3, ...
Mais j'ai toujours utilisé soit le modèle Small, soit le modèle Large. Et maintenant, le modèle Flat (équivalent au Tiny sauf qu'on utilise des pointeurs 32 bits au lieu de 16).
[edtdd]--Message édité par BifaceMcLeOD--[/edtdd]
Marsh Posté le 29-07-2001 à 03:07:52
Sous windows tu n'avais pas huge ni tiny (juste 4 versions de la librairie, swin.lib,mwin.lib,...) y'avais la possibilite de declarer des pointeurs huge sous certaines conditions il me semble.
A+,
Marsh Posté le 29-07-2001 à 03:11:37
Moi, j'etais deja en flat sous windows 3.1:
J'utilisais le compilo Metaware, qui en debut de programme, faisait un malloc de 2 megs (Max) et gerait l'adressage lineaire dans cet espace. (On pouvait eventuellement utiliset GlobalAlloc et des fonctions proprios si on avait besoin de plus, mais c'etait rare).
A+,
Marsh Posté le 27-07-2001 à 12:23:14
Ce problème est tout gentil par rapport aux merdes énormes que j'avais jusqu'a hier, ms g besoin d'aide qd même !
En fait je suis sous 16bits, et g pas la doc qui correspond (g la MSDN Library récente !) alors c pas facile...
En fait g besoin de la date systeme, je doit la stocker dans un espace mémoire pointé par un LPSTR.
J'ai un problème parce que pour avoir la date système sous forme d'une chaine de char, je n'ai trouvé que _strtime qui me rend un pointeur near -->j'arrive pas à stocker ds la zone mémoire que je veux (je suis pas fort du tout en 16bits, c ma 1ère fois. Et ma dernière !).
Vous pouvez résoudre mon pb de 2 manières:
- en me donnant une fonction qui met la date système dans une chaine et rend un pointeur Far vers cette chaine.
- en me donnant une fonction qui permet de copier le contenu de la mémoire pointée par un near, dans un far (LPSTR ou autre).
c chiant de rester bloqué sur des conneries comme ça...
J'exècre le 16bits !