poseidon2
Messages postés36Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention12 août 2003
-
7 août 2003 à 15:21
poseidon2
Messages postés36Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention12 août 2003
-
8 août 2003 à 10:51
Voila. Dans le code ci dessous J'ai une valeur dans la variable strFilename:
hDLL = LoadLibrary("HptSimLibVC");
if (hDLL != NULL){
__DBG_LOG("le prog trouve la dll et entre dans la fonction");
//fonction recuperant le timestamp
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress (hDLL,"getTimestamp");
if (!lpfnDllFunc1){
// handle the error
FreeLibrary(hDLL);
__DBG_LOG("le prog ne trouve pas la fonction dans la dll");
}
else{
// call the function
uReturnVal = lpfnDllFunc1();
__DBG_LOG("le prog trouve la fonction dans la dll");
__DBG_LOG("*** TEST *** timeStamp = %.lf", uReturnVal);
}
}
QueryPerformanceCounter((LARGE_INTEGER*)&lTimeNow);
lTimeNow -= lTimeInit;
lTimeWait = lNextTime - lTimeNow;
strFilename=rep;
//Ajout du numero d'image
char ID[1];
_itoa(IndexPhoto,ID,10);
strFilename+=ID;
__DBG_LOG("nom de fichier : %s",strFilename);
//recuperation date au format PC
HANDLE hfl = CreateFile(strFilename,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_READONLY,NULL);
if(hfl != INVALID_HANDLE_VALUE){
DWORD dWrited;
double itemps;
int OK=ReadFile(hfl, &itemps, 13, &dWrited, 0);
if(OK == 0)
__DBG_LOG("Erreur de ReadFile");
else
__DBG_LOG("%.lf",itemps);
CloseHandle(hfl);
double htemps=uReturnVal;
//test de synchro
if(itemps >= htemps){
double difference=itemps-htemps;
pApp->pDisplay->displayFrame((const char *)strFilename);
__DBG_LOG("itemps>htemps. Attente");
}
else{
IndexPhoto++;
}
}else{
__DBG_LOG("erreur ouverture fichier");
IndexPhoto++;
}
Cependant elle disparait lorsque que j'essaye de lui ajouter le chiffe a la fin. Ce n'est pas une erreur du a l'ajoue du chiffre, apres plusieur essai j'en suis sur mais autre chose....
Si ca vous inspire moa ca fait 3h que je suis dessus et %-6
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 7 août 2003 à 16:28
Quel est le type de strFilename ? Si ce n'est qu'un simple char* tu ne peux pas concatener deux chaines comme ca, tu dois utiliser la fonction strcat().
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 7 août 2003 à 16:39
Alors le problème vient certainement de ton ID. Déclaré comme un seul caractère il ne peut pas contenir une chaine de caractères car il y a juste la place pour mettre le zéro final dedans.
poseidon2
Messages postés36Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention12 août 2003 7 août 2003 à 17:00
Merci ca devait etre ca(en fin de journée apres avoir bataille je ne suis plus sur de rien)
Sinon autre pb:
Pkoi la commande si dessous me renvoi dans itemps 0 alors qu'elle devrait me renvoyer les 13 caractere suivants:1069870231059 ?
poseidon2
Messages postés36Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention12 août 2003 7 août 2003 à 17:29
En fait apres j'ai besoin de le comparer a une autre valeur numerique pour savoir laquel des deux est la lus grande.
Ce pourquoi j'ai mis un double.
J'ai essayé avec un int ou un long mais a chque fois cela ne me prend pas les 13 caracteres et me les transforme en valeur negative toute bizarre
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 7 août 2003 à 17:33
Tu es obligé d'utiliser un tableau de caractères pour lire des informations dans un fichier. A toi ensuite de convertir ces caractères en double ou autre pour les comparer.
poseidon2
Messages postés36Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention12 août 2003 8 août 2003 à 10:51
c'étais bien ca merci.
Sion vu que j'ai asez bataillé pour la trouver, voici la fonction permettant de faire un cast entre un (char *) et un double :
strtod . Je pense que ca pourra servir :big)