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++

dnob700
dnob700
Niveau 10
24 mars 2005 à 17:36:55

pouky : faire une lib à partir de rien, n´a pas bcp d´interet sauf si tu écrit ton propre OS, mais sinon ce qui est interessant c´est d´écrire quelque chose de plus dévelloper par dessus ce qui existe déjà en te servant de ce qui existe déjà. lis la suite pour voir un exemple

extasy89 : pour toute les fonction de conio.h qui n´existe plus ( gotoxy, color,...) et bien d´autre pour la console plus énormément d´autre truc en tout genre , tu peut utiliser ma bibliothèque ( ouais, en francais normallement on dit une bibliothèque plutot qu´une lib, mais bon) :
http://perso.wanadoo.fr/sectionpc/lib

pour pouky : cette lib je l´ai écrite en C++ mais par dessus windows.h c´est à dire je n´ai pas écrit les fonctions qui écrivent dans la console. Même si j´aurais pu le faire c´est trop long, trop compliqué et je l´aurais fait moins bien que ce qui existe).
Donc je me sers de windows.h et de ses fonctions pour faire de l´affichage plus sympa et plus simple pour le programmeur.

En bonus avec ma lib, si vous l´utilisez pour les entrée sortie, ça marche sur le même style que iostream, mais vos programme seront bcp plus petit.

pouky10
pouky10
Niveau 6
24 mars 2005 à 18:15:17

Merci,on peut tout faire avec window.h(quand on la connait)?

pouky10
pouky10
Niveau 6
24 mars 2005 à 18:18:46

extasy, la librairie conio n´est pas sur tout les compilateur mais certain,mais sur dev-c++ il faut inclure conio.c

extasy89
extasy89
Niveau 6
24 mars 2005 à 19:36:09

merci pouky10 mais ou je peux trouver conio.c et est ce normal que dans mon dossier lib de dev-cpp je ne trouve pas conio.lib?

merci d´avance

JeanYvesYves
JeanYvesYves
Niveau 10
24 mars 2005 à 20:11:03

Conio a beaucoup vieilli, donc certains compilos ne l´implémentent plus.

La programmation sous Windows est faite en mode " protégé" c´est a dire que Windows te pose des restrictions :
Sous MSDOS, tu étais en mode " reel" il n´y avait aucune restrictions.
Ce ne sont pas des restrictions qui sont la pour faire chier, au contraire, elles sont la pour assurer le bon fonctionnement du systeme :
- si tu essaies d´écrire a une adresse interdite, windows te marque " ce programme va etre arreté... blablabla". Si il n´y avait pas ça, il risquerait de se bloquer, et tu serais obligé de rebooter. C´était le cas avec DOS.
- Windows t´empeche d´accéder directement aux périphériques comme la carte graphique et tout. Il faut envoyer des requetes a Windows pour qu´il y accede. Cela n´est pas fait pour faire chier, mais pour au contraire optimiser l´acces, grace au pilote, en faisant abstraction du matériel, et en utilisant toutes les accélérations qu´il y a dessus.

Sous Windows, si tu veux programmer bas niveau, tu es obligé de passer par windows.h

Si un jour tu veux programmer sans rien, alors tu dois ne pas lancer Windows ( lancer un DOS par exemple), et la tu seras en mode réel. La tu peux faire ce que tu veux.

Voila maintenant si tu veux savoir ce qu´il y a tout en bas des fonctions que tu connais :

Au plus bas niveau, tu as :

- Les fonctions machine de base. ( instructions assembleur MOV, ADD, SUB) qui, respectivement, copient 1 ou plusieurs octets d´un endroit de la mémoire a un autre, font une addition, une soustraction...
Je ne vais pas descendre au niveau de l´electronique, si tu veux en savoir plus, va site mon site, rubrique Fac/Licence d´info, et tu télécharges les 2 parties de " technologie des ordinateurs", 50 pages sous Word :)
Bref, ces fonctions servent uniquement a manipuler des données en RAM.

Ensuite, tu as les instructions BIOS de base : ce sont des " fonctions" gravées dans une puce, elles n´ont pas nom, mais un numéro : par exemple, l´instruction 0x10 permet d´envoyer des données ( texte ou pixels) a l´écran, l´instrcution 0x33 permet de prendre le controle de la souris, etc etc... Les trucs de base essentiels. instruction assembleur d´appel " INT"
( rien a voir avec celui du C)

Ensuite, tu as les instructions d´entrée/sortie
IN/OUT qui permettent d´envoyer ou recevoir des données vers ou depuis un périphérique.

Avec ça, tu as la base pour tout faire... en mode réel ! !

extasy89
extasy89
Niveau 6
24 mars 2005 à 20:15:13

n´existerait il pas alors une commande simple qui permette d´écrire en couleur avec dev-c++?

e-nis
e-nis
Niveau 10
24 mars 2005 à 20:15:22

Bonsoir,
C´est Enis, le binôme de " soulhouf".
Nous avons passé l´après-midi à essayer d´afficher un niveau et nous n´y arrivons pas!!!
( à partir d´une matrice générée par Tile Studio)
Le problème est qu´il affiche correctement tous les tiles, SAUF ceux de la deuxième colonne ( en partant de la gauche).
Bug très bizarre....
En connaitrais-tu l´origine??
Y aurait-il un bug dans la fonction Render() ?
Merci d´avance! :-)

JeanYvesYves
JeanYvesYves
Niveau 10
24 mars 2005 à 20:18:48

e-nis > ah oui, possible, si tu as changé la résol, la " clipping" est coupé trop fin :

dans les for que tu as dans render, commence a -2 au lieu de -1, et va 1 case + loin aussi :)

e-nis
e-nis
Niveau 10
24 mars 2005 à 20:22:37

Je laisse mon binôme l´essayer...
On est en train de s´arracher les cheveux...
On a passé toute l´après-midi à essayer d´en découvrir l´origine...
Que veux-tu dire par résolution?
Celles des tiles ? ( on a changé, 32*32 au lieu de 16*16)
Celle de la fenêtre? ( non)
Celle de l´écran? ( non)

En fait, quand il rencontre une tile de la colonne 2, soit il affiche n´importe quoi, soit il affiche une autre tile sans bug, soit il n´affiche rien.
Parfois quand le perso marche sur les tiles en question, ça génère des bugs d´affichage aussi.

Mon binôme vient de changer les indices, ça n´a pas l´air de changer grand chose...
Merci pour ton aide.

soulhouf
soulhouf
Niveau 4
24 mars 2005 à 20:23:08

ça sert a quoi de commencer a partir de -2 au lieu de -1?

soulhouf
soulhouf
Niveau 4
24 mars 2005 à 20:29:06

c vraiment bizarre pourquoi il se passe des trucs etranges quant il s´agit d´afficher les tiles de la colonnes 2?
JYY essaie de le faire sur ton code et dis moi ce qui se passe

extasy89
extasy89
Niveau 6
24 mars 2005 à 21:19:28

merci dnob700, mais j´ai installer ta biblio et j´ai fait tout ce qu´il fallait et dans le prog j´écris:

int main()
{
bool SetColor ( unsigned short c);
console.SetColor(ADVIO::TEXTE_JAUNE);

mais il écrit:

`console´ undeclared ( first use this function)
`ADVIO´ has not been declared
`TEXTE_JAUNE´ undeclared ( first use this function)

comment faire?

merci d´avance

soulhouf
soulhouf
Niveau 4
24 mars 2005 à 21:30:54

extasy89 > t´as pense a declarer console avant de l´utiliser?

e-nis
e-nis
Niveau 10
24 mars 2005 à 21:47:21

En fait, c´est aussi la ligne 2 ( à part la colonne 2) du chipset dont les tiles posent problème!!!
C´est impossible à afficher, ça affiche toujours n´importe quoi...
On en a marre, on est à la recherche d´une corde...

C´est incompréhensible, ce bug...

dnob700
dnob700
Niveau 10
24 mars 2005 à 21:58:46

pour l´utilisation de la lib, j´ai bien décrit cette partie dans le pdf qui l´accompagne.

si tu ne trouve pas ça clair dit le moi, je l´arrangerai.

pour que ça marche, lis bien tout le premier chapitre qui dit comment faire sous VC++ et sous Dev C++ ( où mettre les fichier, comment linker ton programme à la lib ( il ne faut pas oublier de la mettre dans les propriété du projet).

Après ça, tu mets au début de ton programme :

  1. include < SectionPC.h>

using namespace SectionPC::TextXP; / /pour la console

puis tu n´a pas besoin de déclarer console ni les fonction, tout est fait automatiquement tu fait juste :

int main()
{
console.SetColor(ADVIO::TEXTE_JAUNE);
int n;
console < < " bonjour tu as quel age ? " > > n;
console.gotoxy(10,5);
console < < crlf < < " tu as donc : " < < n < < " ans.";
console.pause();
return 0;
}

dnob700
dnob700
Niveau 10
24 mars 2005 à 21:59:59

bien sur il faut enlever les espaces entre les < < et les > > et après les " que mets le forum.

extasy89
extasy89
Niveau 6
24 mars 2005 à 22:10:25

MERCI DNOB700!!!!!!!!!!!!!!!!!!

sa marche mais j´ai encore une petite question:

comment faire pour seulement écrire en couleur une partie de texte et pas une autre ( par exemple mettre le titre en rouge, le texte en blanc et autre chose en vert)

merci d´avance

extasy89
extasy89
Niveau 6
24 mars 2005 à 22:16:15

non c bon j´ai trouver merci

JeanYvesYves
JeanYvesYves
Niveau 10
24 mars 2005 à 22:33:16

soulhouf >
Je t´ai envoyé un mail ( enfin a e.nis je crois)
En fait, j´ai modifié le prog pour qu´il utilise des tiles 32*32 : ça marche.
( j´ai redimentionné le chipset et charset bein sur)

J´ai modifié dans exe.cpp les params 16,16 du contructeur de Fmap, en 32,32
et dans Perso.cpp j´ai transformé les 24 en 48 et les 16 en 32...

Voila ou tu peux le trouver ( je l´enleverai bientot)

http://perso.numericable.e.fr/~fvirtman/promenade32.zip

pouky10
pouky10
Niveau 6
24 mars 2005 à 23:01:17

Salut, je suis en train de faire une animation genre screensavers avec SDL. Pour expliqué(c repris d´un tuto et améliorer), il est fait d´un image de 32 pixel par 320 composé de 10 chiffre sur la largeur, mon programme remplira l´écran(25*32=800 19*32=un peu plus de 600 au total 470 chifre environ à l´écran) de nombre et changeront à une vitesse différente. Alors j´ai une classe avec 2 structure SDL_Rect r pour le nombre à afficher et d pour la destination. Cette classe a un constructeur
pour faire apparaitre les carré au bonne place sans tout les placcer moi même, cette classe a aussi un membre static initier à zéro et augmenter de 1 par le constructeur.Voici le bout important du construteurqui me cause un problème:

total++;
r.x=nombre*32; / /surface de départ
r.y=0;
r.w=32;
r.h=32;

d.x = ( total%25)*32; / /surface d´arriver
d.y = ( total/25)*32 ;
d.h=32;
d.y=32;

pour plus d´expliqation sinon passez au paragraphe suivant.La struct r fait seulement initier pour le premier chiffre de l´image que je load. La strut d, elle je veux quelle affiche le nombre à la bonne place, donc je veux que x divise total par 25(nombre de chiffre en largeur) et prenne le reste pour afficher x à la bonne place, ce qui marche, et pour le y, le nombre de chiffre est divisé par 25 et multiplié pas la hauteur du chiffre, pour le placer sur le bon y.

Mon problème est que c´est seulement la première ligne de chiffre qui es afficher et pas les autre même si je cré 470 nombre.Que dois-je faire???

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