Hello,
J'ai un projet en tête pour CPCDOS en C++, mais j'aurais besoin d'interagir avec le moteur CPCDOSC+ (comme faire system(lacommande); )
Est possible, de faire ça ?
Merci d'avance pour vos réponse ;)
Version imprimable
Hello,
J'ai un projet en tête pour CPCDOS en C++, mais j'aurais besoin d'interagir avec le moteur CPCDOSC+ (comme faire system(lacommande); )
Est possible, de faire ça ?
Merci d'avance pour vos réponse ;)
Bonjour,
Oui cela est tout à fait possible! :)
En fait tu n'as qu'a faire un espèce de "Terminal" ou en fait ce que l'utilisateur écrit dedans (donc en C++) sera traduit en CPCDOS par ton programme (le terminal que tu vas créer) pour que le noyaux comprenne ce que tu lui demande. ;)
Je te fait un petit exemple même si je ne connais pas trop la syntaxe du C++:Dans ce programme, je code un langage de programmation (pour ce que tu veux faire le C++).Est-ce que tu as compris comment faire?Code:
1
2
3
4
5 //Ici je ne code que la partie d'affichage d'un texte écrit en C++ vers le CPCDOS //La variable commande est la variable qui récupère ce que l'utilisateur entre dans le terminal SI/ %commande% = std::cout << "TonTexte" << std::endl; (:// Et là tu affiche TonTexte en faisant comme si chaque caractère de %commande% était un emplacement d'une liste//Pour t'expliquer je vais faire comme en Python car c'est que je connais de mieux...//print(commande[14:14])FIN/ SI
N'hésite pas à demander de l'aide! ;);)
Merci de ta réponse mais je pense qu'on s'est mal compris voila se que je pense faire.
Voila un exemple
Code:
1
2
3
4
5
6
7
8
9
10 #include <cstdlib> #include <iostream> int main(int argc, char* argv[]) { std::string arg = argv[1]; std::string cmd = "txt/ " + arg; system(cmd.c_str()); }
Oui moi aussi je crois qu'on c'est mal compris...
Je ne connais pas la syntaxe du C++ et je ne comprends pas trop où tu veux en venir? Tu veux passer du C++ au CPCDOS ou du CPCDOS au C++?
Je veux passer de l'information qui viens du C++ vers du CPCDOSC+. Pour par exemple coder un message box en C++ sur un OS CPCDOS
À ce moment là il faut faire comme je l'ai dit:
_Tu récupère dans une variable une commande qui peut provenir d'un fichier(dans ce cas ta variable correspondera à la ligne x d'un fichier) ou d'un terminal
_Tu fais tout un tas de conditions dans ton code qui correspond aux commandes du C++
_Et à l'intérieure de ta condition tu met l'action qu'effectue normalement le C++ mais tu l'écrit en CPCDOSC+
Pour ce qui est de créer des fenêtres etc... en C++ il va falloir inventer une syntaxe qui reste dans l'esprit du C++ et la traduire en CPCDOSC+ mais avant il faut recoder toutes les commandes C++ de 0.
Bon j'ai fait mes recherche.
Et notre chère Sébastien a coder une sorte de SDK pour coder en C++ pour la version 4 un peu de patience et je pourrais faire joujou avec CPCDOS et le C++ :ptdr:
Merci quand même pour tes réponses BlackoOSX
De rien 😉😉
Oui c'est possible de coder en C++ pour CpcDos, actuellement tu peux utiliser Cwc pour compiler un exécutable compatible Windows/CpcDos
Tu peux télécharger ici la version 0.4
Note: la version 0.5 semble avoir un problème, mais je suis sur le projet.
Un exemple pour lire un fichier se trouve dans les démos ("Demos\Platform_Specific\CpcDos\01_OpenFile")
Dans ton cas il te faut utiliser la fonction :
ou bien la fonction C:Code:
1
2
3 int Level = 0; CpcDos->Shell_CCP("Commande", Level);
Code:
1
2 extern "C" void cpc_CCP_Exec_Commande (char* COMMANDE, int ID);
Ow sa c'est intéressant merci maeiky:ccool:
Dernière question à quoi correspond l'argument level ?
Si je ne dis pas de connerie ça correspond au niveau de priorité.
Citation:
Le langage CpcdosC+ va évoluer, va passer à la version CpcdosC+ 3.0, et certaines choses venant de la Alpha 3.9 et antérieure ne fonctionnera plus correctement. Tout comme la commande FIX/ qui par défaut créera des variables type PRIVE avec 5 niveaux différents
Variable privé / public niveau :
- [1] Procédures / fonctions
- [2] Applications / processus
- [3] Utilisateur(s)
- [4] Système(s) d'exploitation
- [5] Kernel
Read more at http://cpcdos.e-monsite.com/pages/qu...xTxb1Td0WxV.99
Du coup je suis un peu dans le champ avec mon "0" :PCode:
1
2
3
4
5
6 REM/ Pour tous le programme, on se met au niveau 3 (USER) REM/ Donc on evite de relancer une autre instance pour cette version ;) ccp/ /optimisation = 1 ccp/ /fix.niveau = 3
Le mieux serait donc "3", je vais demander à Seb de mettre cette valeur par défaut, on n'aura donc pas à se poser la question.
Pour lancer une .exe sous CpcDos, il faut entrer la commande (avec l'exemple "OpenFile") :
Citation:
exe/ /pe OpenFile.exe
Super Merci ^^