C++调用Python脚本上传三维模型至Sketchfab网站
来源:互联网 发布:死亡游戏4集解析知乎 编辑:程序博客网 时间:2024/06/06 19:38
文章标题有点乱,感觉就是一堆乱七八糟的名词堆砌,实际上还有个MFC没有加上去。
所以本文的三个中心就是:
1.C++调用Python、
2.使用网站API、
3.程序在MFC下执行
一、C++调用Python
1.环境:
项目属性中配置Python的头文件夹和库文件夹
#include <Python.h>
#pragma commet(lib,"python27.lib")
2.调用方式
方法其实有好几种,此处我只列举了两种。
第一种是最粗暴的办法,直接逐行调用Python脚本,谈不上C++和Python进行交互。
第二种是调用Python脚本中的模块,C++为模块传递参数。
Py_Initialize();//调用Py_Initialize()进行初始化///方法一:逐行执行字符串char szFile[] = "test.py";FILE* fp = fopen(szFile, "r");if (fp && PyRun_SimpleString("execfile('test1.py')") != 0){fclose(fp);printf("PyRun_SimpleFile(%s)failed!", szFile);return -1;}Py_Finalize();///方法二:调用Python的APIPyRun_SimpleString("import sys");PyRun_SimpleString("print '---import sys---'");PyRun_SimpleString("sys.path.append('./')");PyObject *pArgs = PyTuple_New(5);PyTuple_SetItem(pArgs, 0, Py_BuildValue("s", "./data/test.ply")); //file_pathPyTuple_SetItem(pArgs, 1, Py_BuildValue("s", "1013_3")); //model_namePyTuple_SetItem(pArgs, 2, Py_BuildValue("s", "这是今天的第三次测试")); //model_descriptionPyTuple_SetItem(pArgs, 3, Py_BuildValue("s", "feibai"));//model_tagPyTuple_SetItem(pArgs, 4, Py_BuildValue("s", "gaming"));//model_categloriePyObject* pModule = 0;PyObject*pFunc = 0;pModule = PyImport_ImportModule("test1");//调用的Python文件名pFunc = PyObject_GetAttrString(pModule,"upload");//调用的函数名PyEval_CallObject(pFunc, pArgs);//调用函数,NULL表示参数为空Py_Finalize();//调用Py_Finalize,和Py_Initialize相对应的.
3.一些坑
Python脚本不要命名成test.py,因为Python内部有test模块,会发生调用冲突。
4.MFC下如何调用
上面的代码是控制台下的方式,放到MFC里面实际上没有什么本质变化,只是传递参数的时候,CString转成char*就可以了。方法是使用WideCharToMultiByte函数:
CString fileinfo = filePath;int len = WideCharToMultiByte(CP_ACP, 0, fileinfo, -1, NULL, 0, NULL, NULL);char *filepathTmp = new char[len + 1];
5.控件和变量的绑定
双击控件以添加事件:
model_tag.GetString();UpdateData();
此时model_tag这个变量的值就是在图形界面输入的值了。
二、使用网站API
我要上传三维模型到网站Sketchfab.com,这网站需要翻墙。
听说这个网站是三维设计师的天堂,就像对于程序员的github。
注册一个账号,给一个API TOKEN,这个TOKEN是唯一的,可以调用网站给的API(Python写的)来上传模型到自己的账号。上传到公共区免费,私人空间需要缴50刀。
好了,不打广告了。
适当修改Python脚本,参数放在upload函数里面。
具体怎么调用第一步已经说了。
三、MFC下执行
在网页上查看,有了。
阅读全文
0 0
- C++调用Python脚本上传三维模型至Sketchfab网站
- #推荐网站#SketchFab
- 三维模型 相关网站
- C调用Python脚本代码
- c/c++ 调用python 脚本
- C语言调用PYTHON脚本
- python三维模型批量导入
- C,C++代码中调用python脚本
- C嵌套python脚本调用心得
- 【编程语言】C中调用Python脚本
- C,C++代码中调用python脚本
- C语言调用Python脚本中的函数
- 用脚本C调用Python脚本文件里的函数
- python+opengl显示三维模型小程序
- 【VS2013】C语言调用Python脚本环境搭建、函数调用和调用demo.py脚本an
- C调用Python脚本文件里的函数(转)
- C调用Python脚本文件里的函数
- C调用Python脚本文件里的函数
- 37、C#,判定小数;格式化字符
- Git笔记
- Ubuntu12.04安装adb
- Emoji介绍
- Android基础总结十二:RecyclerView简单使用
- C++调用Python脚本上传三维模型至Sketchfab网站
- Redis 安装与启动
- 物联网的关键技术:LoRa简介与应用案例
- D3.js中国地图下钻
- Do not concatenate text displayed with 'setText'. Use resource string with placeholders.
- Redis学习笔记(一)
- 不为繁华易匠心
- VS2012下编译libeXosip2
- 大数据商业智能争议不断,IT技术面临挑战