J'utilise actuellement la version 6.0.0 ChaiScript et Visual Studio 2017.Erreur: « Impossible de trouver l'objet: utiliser »
Dans mon C++, je suis une référence à la récupération d'une fonction on_init()
à partir d'un fichier de script, et l'exécuter. L'objet ChaiScript a été construit avec le constructeur par défaut/vide. La fonction ressemble à ceci:
def on_init() {
use("scripts/test.chai");
}
Le contenu de "scripts/test.chai" ressemble à ceci:
class A {
def A() {
print("Created an instance of A!");
}
}
Ma structure de fichier ressemble à ceci:
bin
\
| my_executable.exe
| scripts
\
| main_menu.chai
| test.chai
Lors de l'exécution la fonction on_init()
illustrée ci-dessus, la console imprime le message suivant:
Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use" Error: "Can not find object: use"
L'utilisation de "usepaths" lors de la construction de l'objet ChaiScript aboutit à la même situation.
J'ai essayé use("test.chai")
ainsi que use("scripts/test.chai")
, et les deux ont pour résultat les mêmes messages.
Je ne fournis aucune chaiscript::Options
enum lors de la construction de l'objet ChaiScript, il devrait donc utiliser la valeur par défaut (qui semble contenir External_Scripts
ainsi que Load_Modules
).
Je suis en train de compiler ChaiScript avec la sécurité des threads désactivée. Je n'ai aucun problème à exécuter les autres fonctions intégrées dans le corps de ce script, y compris dans les autres fonctions que je récupère (en C++) de la même manière que celle-ci.
Si d'autres informations sont nécessaires, faites-le moi savoir. Est-ce que j'utilise la fonction "use" incorrectement?
Il se comporte comme si 'use' manquait complètement à l'exécutable. Cela ou, 'test.chai' est de faire quelque chose qui provoque une récursivité. Les deux sont bizarres.Mais j'ai besoin d'un exemple plus complet pour diagnostiquer. 'use' est utilisé pour * tous * les tests unitaires, donc on sait qu'il fonctionne. – lefticus