[C] argument de main()
Résolu
clintm
Messages postés
718
Statut
Membre
-
clintm Messages postés 718 Statut Membre -
clintm Messages postés 718 Statut Membre -
Bonjour,
je code un programme qui déplace la souris à une position données, via deux paramère x, y
mais ca ne marche pas, or en absolut, si je remplace les valeurs, ca marche bien.
je pense que c'est une érreur toutes bête car j'utilise rarement le c
merci
--
------------------------------------------
>>Trop de paroles noient la vérité<<
je code un programme qui déplace la souris à une position données, via deux paramère x, y
#include <windows.h>
int main(int argc, char *argv[])
{
POINT pt;
BOOL bContinue = TRUE;
const SHORT Mask = 32768;
SetCursorPos(argv[1], argv[2]);
return 0;
}
mais ca ne marche pas, or en absolut, si je remplace les valeurs, ca marche bien.
je pense que c'est une érreur toutes bête car j'utilise rarement le c
merci
--
------------------------------------------
>>Trop de paroles noient la vérité<<
Configuration: Windows Vista Firefox 3.0.3
9 réponses
-
Bonsoir,
je vais certainement dire une bêtise mais le premier élément d'un tableau en c possède l'index 0 me semble-t'il
SetCursorPos(argv[0], argv[1]);
-
-
Bonsoir,
je tente encore ma chance : les typpes ne corresponde pas : argv -> char et SetCursorPos attend un int ? -
Salut
Le prototype de fonction est SetCursorPos(int,int), et toi tu mets en arguments des chaînes de caractères (argv[1] et argv[2]). Il faut les convertir en entier et donc utiliser la fonction atoi de stdlib.h.
Teste :SetCursorPos(atoi(argv[1]),atoi(argv[2]);
N'oublie pas d'inclure stdlib.h ;)
Cdlt -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
merci
j'avais oublier ! parce que argv est une chaine de caractère char
en réalité ça marchait mais ça allait toujours dans le coin à droite en bas (car le nombre devait être trop grand)
est c'est que je ne peux pas changer le char *argv dans la fonction main() en int* argv ???
merci -
Oui ça marchait, car tu te retrouvais avec l'adresse mémoire de l'emplacement qui est un grand nombre ^^.
Non tu ne peux pas faire ça car le compilateur ne sait pas ce que l'utilisateur va entrer en paramètre (nombre ou chaînes de caractères et heureusement pour la sécurité ^^). Donc du coup, c'est à toi de convertir en int.
-
mon compilateur me renvoi une érreur :
in function 'main'
l8 : syntax error before ';' tokens
pourtant j'ai inclut le stdlib et j'ai éssayer en envoyant les 2 arguments -
bizarement j'ai mis ca:
#include <windows.h> #include <stdlib.h> int main(int argc, char *argv[]) { const SHORT Mask = 32768; int x = atoi(argv[1]); int y = atoi(argv[2]); SetCursorPos(x, y); // mouse_event(MOUSEEVENTF_LEFTDOWN,800, 400,0,0); return 0; }
et ca marche très bien -
biensur
SetCursorPos(atoi(argv[1]),atoi(argv[2]);
la dernière paranthèse
merci à tous ca marche