Скрипт возвращает значение в 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 или другими языками.

Другие вопросы по тегам