Скрипт возвращает значение в stadout, но не может получить значение в возвращаемом параметре
Я использую функцию callexec для вызова скрипта Python. Скрипт python возвращает значение в stadout, но я не могу получить значение в возвращаемом параметре. Есть ли способ передать значение переменной результатов?
Это сценарий CANape, который я использую:
double err;
char result[];
err = CallExecutable("C:\\Program Files (x86)\\Python38-32\\python.exe", "C:\\Users\\XXXX\\Desktop\\Read_Current.py 1", 1, result);
print("%s", result);
заранее спасибо
1 ответ
Буфер результатов, предоставленный CallExecutable, вернет результат кода выхода из программы Python. Следующий код Python, если он будет вызван, вернет 123, и именно это значение результата будет в вашем коде выше.
импорт системных файлов sys.exit(123)
Если вы хотите передать данные обратно из скрипта Python, я сделал это, используя механизм функциональной DLL (для этого в CANape включен некоторый демонстрационный код). Он включает в себя небольшую оболочку C++ для взаимодействия с python или другими языками.