我是靠谱客的博主 友好飞鸟,最近开发中收集的这篇文章主要介绍C++嵌入python开发PyRun_SimpleFile函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

函数原型:PyRun_SimpleFile(FILE *fp, const char *filename

官方解释:在Windows上,fp应该以二进制模式打开(例如fopen(文件名,“rb”)。 否则,Python 可能无法正确处理 LF 行结尾的脚本文件。

事情经过:

           一开始使用的易语言,打开文件 传递过去失败。包括尝试使用msvcrt.dll 和crtdll.dll 这些标准C语言库中导出的fopen函数一直都不行。后来决定使用C++来封装。易语言很多数据类型很难实现。自己也不想浪费太多时间,毕竟是要站在巨人的肩膀上嘛。

           因为之前的失败,所以我上来就直接百度了。竟然有不少大佬也遇到了相同的问题,看了几个博客。结果是解决了。使用的_Py_fopen_obj

          后来仔细看了一下他们之间的区别,想到了官方文档中要求的是二进制方式打开。而大佬们博客的代码写的都是r+或者其他的,正常是rb才对。于是我就按照官方的方式试了一下。结果运行通过了。。。着实是为这几位大佬的粗心捏一把汗啊!

解决方案:


char szFile[] = "1.py";
FILE* fp = fopen(szFile, "rb");
PyRun_SimpleFile(fp, "1.py");

最后

以上就是友好飞鸟为你收集整理的C++嵌入python开发PyRun_SimpleFile函数的全部内容,希望文章能够帮你解决C++嵌入python开发PyRun_SimpleFile函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部