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

moteur de script

dnob700
dnob700
Niveau 10
23 octobre 2004 à 18:04:36

je ne sais pas si ce que je recherche existe, mais je suppose que oui :

je cherche depuis quelques jours, mais en vain, un moteur de script mathématique, c´est a dire une lib a qui je passerai une chaine dans le genre " 4+5*cos(.25)" et qui me renverrai le résultat.

Il y a bien sur le wscript de windows, mais je ne sais pas du tout utiliser des controle activeX ( ou COM, je sais pas trop la différence) en C++, hors c´est sous forme d´ActiveX qu´il est fourni dans windows ( c´est l´un des vrai avantage de VB, où utiliser ce genre de truc est simplissime).

si quelqu´un a une idée ( pour l´une des deux possibilité) ça m´arrangerait bien.

merci d´avance pour toute les réponses.

MathieuN7
MathieuN7
Niveau 10
23 octobre 2004 à 19:53:22

ben en C c´est faisable!

dnob700
dnob700
Niveau 10
23 octobre 2004 à 19:57:37

oui, c´est faisable, mais ça m´ennuie un peu de le reprogrammer ( vu qu´en notation infixée, c´est pas super facile d´interprété des trucs comme ça)... c´est pour ça que j´en cherche déjà fait.

MathieuN7
MathieuN7
Niveau 10
23 octobre 2004 à 20:29:19

jcomprends pas ton problème, tu veux reprogrammer quoi??
Ton but c´est de calculer des cosinus et tout?

dnob700
dnob700
Niveau 10
23 octobre 2004 à 21:51:27

oui, mais pas de mettre dans le code :

double a,b=4;
a=cos(b);

moi ce que je veut c´est ça :

char cmd[255];
double rep;
cin > > cmd;
rep=script.eval(cmd);
cout < < rep;

c´est a dire que je cherche l´objet ou la classe capable d´interpréter une chaine.

Mais la je suis en train d´essayer de comperndre le mécaninisme OLE pour pouvoir appeler les ActiveX ( ou c´est le contraire ? ) enfin bon, je vais essayer d´utiliser le msscript.

MathieuN7
MathieuN7
Niveau 10
23 octobre 2004 à 22:03:24

bon... jcomprends rien mais je sais que jpeux pas t´aider :rire:

DasHuhn
DasHuhn
Niveau 10
23 octobre 2004 à 23:15:44

Python, avec Python.h. Je crois qu´on peut appeler l´interpréteur. Voir la doc officielle, mais à mon avis c´est aussi long que d´apprendre ce dont tu as parlé, et c´est aussi moins optimisé.

dnob700
dnob700
Niveau 10
23 octobre 2004 à 23:22:15

c´est pas grave, merci quand même.
finalement j´ai réussi à le faire marcher avec le moteur de script de windows.

pour info, voici el code que j´utilise :

  1. import " msscript.ocx" / /c´est de ce #import que résidait le secret qui m´était inconnu !

using namespace MSScriptControl;

HRESULT hr = CoInitialize(NULL);
IScriptControlPtr pScriptControl(__uuidof(ScriptControl)); // Create a VARIANT array of VARIANTs which hold BSTRs

void ScriptInit()
{
pScriptControl->Language = " VBScript";
pScriptControl->AllowUI = FALSE;
}
void ScriptDeInit()
{
CoUninitialize();
}
long ScriptEval(char *CMD,char *Sortie,long Len)
{
_variant_t outpar = pScriptControl->Eval(CMD);
_bstr_t bstrReturn = ( _bstr_t)outpar;
StrCopy((char *)bstrReturn,Sortie,MAX_SIZE);
return StrLen(Sortie);
}

il faut appeller scriptinit une fois au début du prog et deinit une fois à la fin.
dans le code d´exemple de Microsoft, il mettaient ce code directement dans la fonction principal, mais pour une raison inconnue l´appel à la propriété language est vraiment très long ( plusieurs secondes ( peut-être 5 ou 10)) donc c´estbcp mieux de le faire au début.

mon code est assez allégé car la code original exécutait la méthode run et non pas la méthode eval qui est plus simple à appeller.

jnspunk_1
jnspunk_1
Niveau 5
24 octobre 2004 à 23:04:23

moi j´ ai un truc super pour interpreter ce genre de chaines, c ´ est ma ti-89 :lol:

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