ca sert a faire des applications
imagine, que tu es envie de developper un nouveau format de compression de video (par exempe), il te faut dire a ton ordinateur comment decompresser ta video et ca, se fait a l´aide de programme.
pour faire un programme, soit tu le fais dans le langage de la machine (qui est imbittable) soit tu le fais dans un langage plus proche de toi comme par exemple le C ou le C++.
ça sert a faire des fichiers EXE ![]()
des logiciels, des jeux, etc ! Sans limitation.
Les boites de jeux videos utilisent toutes le C++
est-il possible de definir une section de code comme étant a executer d´un seul coup par le CPU (une sorte d´atome de code)? J´ai vu en cours l´utilisation des semaphores pour les exclusions mutuelles et pour que ces semaphores soit éfficace il doivent etre executé d´une traite. je voulais donc savoir si moi, l´idiot moyen, je pouvais faire pareil en C ou en C++; ou si cette fonctionalité était réservée au systeme.
je sais pas si c´est tes clair
guyver2 > non, ça n´existe pas. Aucun systeme n´est capable de faire cela.
Mais c´est fait expres : imagine un bout de code qui, anormalement, boucle... Ton systeme est mort, tu n´as plus qu´a rebooter...
Donc non, ce n´est pas au point
Cela a proposé pour les sémaphores, et c´est pour cela qu´une instruction assembleur faisant 2 choses a été rajoutée, spécialement, dans les processeurs : l´instruction dite "test and set"
je te laisse te renseigner sur cette fonctionnalité double considérée comme un atome, qui est, a ma connaissance, le seul cas "d´atome multifonction"
en fait c´est quasiment possible : il faut que le processus demande une priorité élevé avant de rentrer dans le bout de code en question (et n´oublie pas reprendre une priorité normale après coup).
Tu peut donner une priorité critique à un thread et "real time" à un processus, auquel cas même l´OS arrète de fonctionner (enfin, ne t´attend pas à voir la souris bouger par exemple, ou le cache du disque être mis à jour) pendant que ton thread travaille. Autant dire que ce n´est pas terrible.
Mais même en ne donnant qu´une priorité élevée ou très élevé à un thread, tu es presque assuré qu´il ne s´arrète pas tant que tu le décide si ce que tu as à faire est suffisement court (mis à par pour laisser la main au système si nécessaire).
Bien sur, le comportement réel n´est pas prévisible et tu ne peut jamas être sur que ton code sera exécuté d´un bloc.
merci bien.
"test and set" >> c´est de ça dont je parlai pour les semaphores.
bon si rien de tel n´existe je vais me rabattre sur les mutex.
autre question:
si je commence un programme directement par un "fork"; que le processus pere contient une boucle qui affiche un message (printf("coucou\n")) et que le processus fils initialise une fenetre sdl.
Est ce que j´aurais deux fenetres (une console te une fenetre sdl)?
Je n´ai pas reussi a essayer chez moi car "fork" ne fonctionne pas sous windows (il doit y a voir un truc semblable, je vais chercher) et je n´ai pas réussi a installer sdl sous linux
Est ce que vous savez comment faire les racines carrés sivouplait jai tout essayé je vois pas ![]()
en C++ jai oublier de preciser ![]()
guyver : normallement oui si ton programme initialise aussi une console, ce qui se fait automatiquement avec les options par défaut de la plupart des compilo (quand on leur demande de faire des programmes en mode consoles).
dark_truc : utilise sqrt dans math.h
han oue merci bcp!! ![]()
merci dnob700
je reviens avec quelques problèmes:
Comment savoir si openGL est compatible sous dev c++ (si c´est comme la SDL, il y a differentes versions... Celle de telecharger.com fait elle l´affaire?)
Quel est la fonction OpenGL pour tourner un sprite d´un nombre de degrés?
avec la SDL, qu´elle est la touche entrée? j´ai essayé
if(keys[SDLK_ENTER]) mais enter ne passe pas dans le compile!
autant pour moi j´aurais pas du demander pour la seconde question j´ai juste a utiliser "wait key"
JYY : il y a quelques jours sur un thread que je ne retrouve pas, un type voulait savoir s´il pouvait exécuter des morceau de code sans aucune interuptions.
Et mise à pars l´astuce d´augmenter la priorité du thread il n´y a pas eu de réponse positive.
Mais là je suis tombé sur les opcode x86 CLI et STI qui se traduise en C par _enable() et _disable() (mais je ne sais pas si c´est portable) qui désactive les interuptions en mode virtuel.
Alors je ne sais pas trop comment tout celà est géré, mais si les interuptions sont bloqué (elles ne sont pas vraiment désactivé), je suppose que le programme ne peut pas être stoppé, car rien ne vas relancer les threads du système non ?
A tout hasard, pour ceux qui ont raté la question :
je reviens avec quelques problèmes:
Comment savoir si openGL est compatible sous dev c++ (si c´est comme la SDL, il y a differentes versions... Celle de telecharger.com fait elle l´affaire?)
Quel est la fonction OpenGL pour tourner un sprite d´un nombre de degrés?
sinon j´en profite pour redemander comment afficher un message avec la SDL, j´ai essayé de mixer avec printf mais ça apparait pas (idem avec ´cout´ et j´ai pourtant mis les bibliothèques.)
merci
dnob700: soit le noyau ne te permettra pas de le faire, soit, le noyau aura la main quand meme... donc il pourra le preempter.
bartours, toutes les lib sont compatibles avec tous les compilateurs, il suffit de bien savoir les linké, ou d´avoir la bonne version de la lib.
pour affiche en SDL, je crois qu´il y a une fonciton SDL_DrawFont
dnob700 Posté le 05 décembre 2005 à 22:13:57 Avertir un administrateur à propos de ce message !
JYY : il y a quelques jours sur un thread que je ne retrouve pas, un type voulait savoir s´il pouvait exécuter des morceau de code sans aucune interuptions.
c´etait moi 7 ou 8 post plus haut. mais une reponse n´est plus necessaire je vais me servir de mutex pour gerer mes sections critiques.
batours
sinon j´en profite pour redemander comment afficher un message avec la SDL, j´ai essayé de mixer avec printf mais ça apparait pas (idem avec ´cout´ et j´ai pourtant mis les bibliothèques.)
merci
SDL desactive la console pour ouvrir une nouvelle fenetre dans laquelle tu ne peux pas ecrir avec un printf ou un count. (va voir le tuto de lapintade sur SDL "NGCK" il y a une methode pour afficher du texte)
(keys[SDLK_ENTER])
la reponse est inutile mais on sait jamains ça peut toujours servir. c´est "SDLK_RETURN" .
On peut ecrire dans la console avec la SDL , je l´ai vu ^^ j´ai perdu le source code a l´interieur des 50 projets appeles projet1 , projet2 etc , mais on peut le faire , c´etait genre ´ fprintf( stderr ( ou out ?) , "message"); mais j´ai pas reussi à le refaire ... enfin si je retrouve le code je le mettrais ...
sinon , c´est plus interessant d´ecrire dans la fenetre graphique , et pour ça SDL_ttf est pas mal
Merci pour les conseils.
Je voulais afficher du texte dans la fenetre SDL, pas dans la console (d´ailleurs je pense qu´il est normal qu´a chaque fois que je lance un projet SDL, il m´ouvre une fenetre dos en même temps?!).
Je m´en vais voir si je trouve tout ce qu´il me faut pour openGL et si je vois cette fameuse fonction qui me permettrait d´incliner mon sprite...