Project

General

Profile

Definition of the links between Scol language and DLL functions » History » Version 1

Version 1/4 - Next » - Current version
ModularMix, 10/14/2011 03:53 PM


Definition of the links between Scol language and DLL functions

This example shows the possibility to add new functions to Scol language using the integration of plugins written in C/C++ language.

Création d'une fonction "HelloWorld"
Nous allons créer notre première fonction C qui pourra être appelée à partir du langage Scol.
Cette fonction, permettra d'afficher un petit message d'accueil "Hello World" qui apparaitra dans la console Scol.
Commencez par écrire la fonction C. Notez la signature de la fonction, elle doit prendre comme paramètre un objet '''mmachine''', et retourner un entier.

Notez également la fonction de l'API Scol '''MMechostr'''. Cette fonction prend deux paramètre, le niveau de log ('''MSKFOO''', '''MSKRUNTIME''', '''MSKWARNING''', '''MSKTRACE''' ou '''MSKDEBUG'''), et le message à loguer en second argument.

Enfin, notez la fonction '''MMSet''', qui permet comme nous l'avons déjà vu d'assigner une valeur au premier élément de la pile Scol (en l'occurrence un entier de valeur 0), celle-ci correspondant '''à la valeur de retour de la fonction Scol''', conformément au prototype Scol attendu ('''fun [ ] I''', soit une fonction sans aucun paramètre, et retournant un entier).
/*! @ingroup group1 * \brief _HelloWorld : Log a "Hello World" message in the console * * <b>Prototype:</b> fun [] I * * \return I : 0 in all cases. **/ int _HelloWorld(mmachine m) { // Show the message MMechostr(MSKRUNTIME, "Hello World!"); // Scol return value. MMset(m,0,0); return 0; }