使用 python 和 c++ 的 Windows 应用程序
Posted
技术标签:
【中文标题】使用 python 和 c++ 的 Windows 应用程序【英文标题】:Windows application using python and c++ 【发布时间】:2020-07-31 18:00:27 【问题描述】:我想开始使用我自己的 Windows 软件。我知道python,我正在学习c++。如何使用 c++ 编写的前端和 python 的后端创建 Windows 软件? 我知道这是可能的,因为搅拌机也是用 c++ 和 python 编写的
【问题讨论】:
你遇到了一个大问题。 Python 语言是解释型的,需要解释器才能运行。 C++ 语言编译为本机代码。 Python 可以调用 C++ 代码。让 C++ 应用程序调用 Python 代码更加困难。恕我直言,请使用一种语言。 @Thomas Matthews 我想要/需要同时使用两者的原因是因为 python 对前端不是很好,而 c++ 对后端不是最好的 您的问题可能会被否决,因为听起来您正在请求教程。对于 Stack Overflow 答案,教程或说明可能太长。人们还希望看到代码和有关代码的问题。 @Thomas Matthews 我不是要教程,但我要的是指导方针,以便我可以找到教程 阅读 cpython 文档here中的教程 【参考方案1】:您可以将 Python 嵌入到 C++ 中。
Documentation
嵌入 Python 的最简单形式是使用非常高级的接口。该接口旨在执行 Python 脚本,而无需直接与应用程序交互。例如,这可用于对文件执行某些操作。
#define PY_SSIZE_T_CLEAN
#include <Python.h>
int
main(int argc, char *argv[])
wchar_t *program = Py_DecodeLocale(argv[0], NULL);
if (program == NULL)
fprintf(stderr, "Fatal error: cannot decode argv[0]\n");
exit(1);
Py_SetProgramName(program); /* optional but recommended */
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print('Today is', ctime(time()))\n");
if (Py_FinalizeEx() < 0)
exit(120);
PyMem_RawFree(program);
return 0;
【讨论】:
以上是关于使用 python 和 c++ 的 Windows 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用在 windows shell 下运行的 Python 解释器编译 C++ 代码
使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的 C++ 应用程序
Windows下python使用SWIG调用C++ dll (转)