Выполнение программы из строковой переменной.

Это удобно в случае, если требуется сформировать алгоритм действий программы по ходу выполнения.

Форма обращения:

double iret = run_cpp("run_from_variable",strint programtext,int arg1,double arg2,string arg3);

Здесь:

programtext - текст программы для выполнения.

arg1, arg2 и arg3 - аргументы, с которыми будет выполнена программа (в ней можно их считать функцией get_args)

Пример.

Сформировать текст программы и выполнить ее с параметрами 100, 111.1 и "аргумент текстовый". В окне сообщений показать результат выполнения программы.


string programtext = "int main(){ cout << \"Моя программа \"<<\"\n\";  int iarg1; double darg2; string sarg3; run_cpp(\"get_args\",iarg1, darg2, sarg3);";

programtext += "cout << iarg1 << \" ,\" << darg2 << \" ,\" << sarg3; return -1;}";

int iret = run_cpp("run_from_variable", programtext, 100, 111.1, "аргумент текстовый");

cout << "iret = " << iret << "\n";


Мы сгенерировали программу так, что по завершению она выполняет функцию return -1.

Значит iret будет содержать -1.