CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

dynoplasmma
dynoplasmma
Niveau 9
12 février 2006 à 13:45:37

Il ne me reste plus que de plus commenter une phase et que les persos ne sortent plus de lecran et cest ok.

Par contre, dans les credits, dois-je mettre mon nom ou alors mon pseudo ou bien les deux ?

Qosimo
Qosimo
Niveau 37
15 février 2006 à 17:38:06

hello !

Je suis à la recherche d´un moyen de gérer les fichier (lecture/écriture/recherche...) compatible SDL. En ce qui concerne la lecture/écriture, le tuto de JeanYvesYves m´a déjà renseigné. Mais il me faudrait une fonction qui retourne le nom de tous les fichier et les dossier dans un dossier. Enfait, mon but est de créer une fenêtre permettant à l´utilisateur de choisir une image sur son ordinateur et de l´afficher dans mon programme. Connaissez-vous un moyen d´y parvenir ?
merci ! :)

Compilateur : Dev C++ v 4.9.9.2 (je crois)
Et il faut que ça soit compatible avec les SDL.

JeanYvesYves
JeanYvesYves
Niveau 10
15 février 2006 à 17:50:57

regarde mon dernier tuto sur les fichiers, c´est l´acces a l´arborescence :)

Qosimo
Qosimo
Niveau 37
15 février 2006 à 18:40:53

Merci, je vois que ton tuto est de plus en plus complet ! Je croyais avoir la dernière version à jour, alors j´ai as pris le soin de regarder sur ton site. Mais je vais le faire de suite !

guyver2
guyver2
Niveau 10
16 février 2006 à 10:40:38

c´est dommage que les programmes de gestion des fichiers et de multi-thread ne soit pas portable de linux vers windows (utilisation d´includes differents et syntaxe des fonctions differentes...).
JYY >> info pour ton site: tu as ecris "la parallelisme" tout en bas.

sinon une petite remarque:
j´ai decouvert tres recement qu´il été tres simple d´executer des commandes shell via un programme avec l´appel a system("truc"); (en fait je me demande pourquoi je m´en suis pas rendu compte tout de suite...)

et du coup le premier truc que j´ai pensé ensuite c´est que sous windows (ou il n´y a pas de systeme de droit d´acces comme sous linux) il est tres facile de glisser une ligne du genre:
system("delete C:\ -R"); je ne connais pas bien la syntaxe du shell windows mais tout le monde aura compris l´idée...
donc je me demandais si il y avait des protections contre de telles choses. Sinon je comprend pourquoi il y a tant de virus sous windows.

JeanYvesYves
JeanYvesYves
Niveau 10
16 février 2006 à 11:51:15

Il n´y a pas de protection spécifique contre ce genre de programmes car c´est valide :)

Mais Linux n´est guere mieux pour ça, rien ne m´empeche de faire un programme qui fait la meme chose.
Si le mec est connecté en root, ça nique tout (rien n´empeche de faire des chmod également)
Rien ne m´empeche, si le mec n´est pas en root, de deleter tous les fichiers auquel il a acces (son repertoire "mes documents" si j´ose dire)
Selon moi, ça fait autent de dégats :) Une fois que tu as perdu tous tes documents perso, que tu perdes le systeme ou non, quelle importance ? tu n´es plus a ça pres ! C´est vite réinstallé, lol !

Bref, dans les 2 cas, y´a de quoi faire de belles merdes :)
Sinon, sous Windows, la commande deltree a été supprimée sous XP :) (on peut la reprogrammer, mais bon...)

guyver2
guyver2
Niveau 10
16 février 2006 à 14:54:39

evidement mon exemple n´est valide que pour un utilisateur non root. mais c´est vrai que ça change pas grand chose entre perdre tous ses doc et tout perdre... Mais je suis surpris que ce soit aussi simple.
et pour la commande delete j´ai ecris ça au pif, je ne connait pas du tout les commandes windows (a part gcc/cd/dir).

Je suis un poil déçut; je pensais qu´il fallait etre un dieu en prog pour faire un vrai "virus" bien salaud.

Altonfrere
Altonfrere
Niveau 10
16 février 2006 à 15:43:01

Bah le challenge (si on peut appeler ca challenge) dans la confection des virus c´est pas vraiment les effets mais plutôt le mode de propagation et d´infiltration qui est le plus délicat et pas à la portée de tous.
Effacer des données tout le monde peut le faire, faire en sorte qu´il se propage à vitesse grand V partout dans le monde et en passant les barrières des antivirus ... c´est une autre paire de manches ;)

godrik
godrik
Niveau 30
16 février 2006 à 16:07:42

deux choses:
1/ windows dispose de droit d´acces sur les fichiers. L´utilisateur par defaut dispose de tous les droits, mais il est recommandé de ne l´utiliser qu´a des fins d´administration.

2/ La premiere chose a faire pour la securite d´une machine est de ne pas executé de code dont on ne connait pas la provenance...
Si vraiment on est pas sure d´un code et que l´on a besoin a tout prix de l´executer. alors il faut l´execute sur un autre compte utilisateur (un compte crash test.)

JeanYvesYves
JeanYvesYves
Niveau 10
16 février 2006 à 16:28:23

oui, et impossible de restreindre un programmeur. ça pourrait etre handicapant.

Par exemple, mon pere aimerait bien que je lui fasse un programme antithumbs (vous savez, quand vous prenez des photos avec un appareil photo numérique, systématiquement, des fichiers thumbs.db sont créés de partout !) donc imaginez le programme pratique qui scanne le disque dur et efface tous les thumbs.db qu´il trouve : tres tres pratique :)
Et pourtant, il marcherait de façon analogue a une vraie bombe :)

dnob700
dnob700
Niveau 10
16 février 2006 à 19:08:52

En même temps, il suffit de cocher l´option "ne pas mettre les miniature en cache" dans "option des dossier/affichage/paramètres avancés" pour que Windows arrète de créer des fichier thumbs.db (mais il ne va pas supprimer ceux qui existent déjà).

Mais quand il y a beaucoup de photo ou d´image (surtout si ça vient dappreil numérique qui produisent d´assez grosses image) ça accélère quand même beaucoup l´affichage des miniature (l´existance de thumbs.db je veux dire).

JeanYvesYves
JeanYvesYves
Niveau 10
16 février 2006 à 20:35:08

Merci Dnob :) je ne connaissais en effet pas cette option ! :-)

dynoplasmma
dynoplasmma
Niveau 9
20 février 2006 à 17:05:17

Bonjours a vous.

Jusque la, jutilisais plusieurs rectangle pour mes programmes sous SDL.
J´ai fouillé dans le forum, et jai trouvé une fonction de Vengeur41 :

void blitSurface(SDL_Surface *s, int x, int y)
{
SDL_Rect rcdst;
rcdst.x = x;
rcdst.y = y;
SDL_BlitSurface(s, NULL, Screen, &rcdst);
}

Cest bien jolie tout ca si on veut des images fixes, mais si on veut qu´elles bougent ?

Lors de lappel a la variable, nous allons donc :
blitSurface(nom_surface, posx, posy);

Donc, 3 pointeurs !

Alors, que prend le plus de place, 3 pointeurs ou 1 pointeur et un rectangle ?

JeanYvesYves
JeanYvesYves
Niveau 10
20 février 2006 à 17:31:31

"une fonction de Vengeur41"
--> Tiens, c´est marrant, j´ai la meme dans mes sources, mais bon... on a du etre nombreux a la programmer.

Cette fonction blit une image qui peut etre mobile dans l´écran de destination (il suffit de changer la valeur de posx et posy), par contre, ça restreint la blitting en blittant TOUTE l´image source

Tu peux aisément changer ça en rajoutant des parametres. A toi de te créer les outils qui te conviennent :)

dynoplasmma
dynoplasmma
Niveau 9
20 février 2006 à 17:53:29

On va dire, jaffiche une image de chien :
blitSurface(chien, 100, 200);

Impossible de mettre des valeurs ici si on veut quela position du chien change !
Car a chaque fois que la boucle passe, la position est remise.

Donc obligation de remplacer 100 et 200 par des pointeurs, et la valeure sera modifié sur le pointeur.

Je ne vois pas d´autre solutions en tout ca.

Ce qui revient a la question :
Que prend le moin de place :

f(z)=z(rectangle)
g(z)=rectangle+z(2*pointeurs)

JeanYvesYves
JeanYvesYves
Niveau 10
20 février 2006 à 18:50:31

d´accord, je vois ton soucis :) c´est juste une gestion des xpos et ypos :)

Je te conseille de structurer ton programme de la façon suivante :

vector<SDL_Surface*> Tab_Images;

struct Sprite
{
int im;
int xpos;
int ypos;
}

Tu stockes, une fois pour toutes tes images dans un tableau. (si le "vector" te gene, fait un tableau normal)
Ensuite, chaque sprite est défini par sa position x/y et par une image.

Changer un de ces champs déplace ou anime le sprite. Ensuite, tu manipules des "Sprites" comme des int, tout simplement ! Tu vois le truc ?

JeanYvesYves
JeanYvesYves
Niveau 10
20 février 2006 à 18:51:40

Ensuite, c´est simple, tu te fais une fonction :

vois Blit(Sprite& s)
{
blitSurface(Tab_Images[s.im],s.x,s.y);
}

Voila :)

nightbarmare
nightbarmare
Niveau 5
20 février 2006 à 20:48:35

slt a tous
j´aimerais que quelqu´un m´explique ce qu´est exactement que la programmation en c++
merci

dynoplasmma
dynoplasmma
Niveau 9
20 février 2006 à 21:14:00

Merci JYY, mais je ne comprends pas tout pour l´instant.

J´ai re ecrit, sans le vector, et en alliant les deux fonctions, mais je ne suis pas sure que cest juste :

SDL_Surface* Tab_Images[5];

struct Sprite
{
int im;
int xpos;
int ypos;
};

void Blit(Sprite *s)
{
SDL_Rect rcdst;
rcdst.x = s.x;
rcdst.y = s.y;
SDL_BlitSurface(SDL_Surface *Tab_Images[s.im], NULL, screen, &rcdst);
}

Apres pour appeler la fonction, il faut faire ca ?
Blit(raquette);

et pour changer les valeurs x et y d´une image, il faut faire ca ?
raquette.x++;
raquette.y--;

Voila je voudrais encore un petit peu daide sur ces trois points :)

JeanYvesYves
JeanYvesYves
Niveau 10
20 février 2006 à 21:48:39

voila, c´est ça :)

un conseil pour la structure (pour etre précis) :décalre la plutot comme ça :

typedef struct
{
...
} Sprite;

et apres, ça se pilote comme tu le dis :)

La structure te permet d´avoir exactement les données que tu veux dans une seule "boite" si j´ose dire.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware