二级python和二级c哪个简单,二级c语言和c++考哪个

大家好,给大家分享一下二级c语言和二级office一起报可以吗,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

导语

Python有很多库,Qt用来编写界面,自然产生C++调用Python的需求PHP与PYTHON:基于语法,功能,应用程序等的详细比较。一路摸索,充满艰辛

添加头文件搜索路径,导入静态库

我的python头文件搜索路径:C:\Python27amd64\include

静态库在:C:\Python27amd64\libs

简易示例

//hello.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

def xprint():

print("hello !!")

//main.cpp

#include "Python.h"

#include

using namespace std;

int main(int argc, char *argv[])

{

Py_Initialize();/* 开始Python解释器 */

PyRun_SimpleString("print 'python start'");

PyRun_SimpleString("import sys");

PyRun_SimpleString("sys.path.append('C:\\Users\\Lution\\Documents\\moni\\py')");

// 导入hello.py模块

PyObject *pName = NULL;

pName = PyString_FromString("hello");

PyObject *pmodule =NULL;

pmodule = PyImport_Import(pName);

//调用函数xprint()

PyObject *pfunc = PyObject_GetAttrString(pmodule, "xprint");

PyObject_CallFunction(pfunc, NULL);

Py_Finalize(); /* 结束Python解释器,释放资源 */

return 0;

}

ERRORS

1、PyImport_Import或者PyImport_ImportModule总是返回为空

这个原因是,python源代码要和C语言编译后的exe同目录,而不是与C源代码同目录

否则使用PyRun_SimpleString("sys.path.append('C:\\Users\\Lution\\Documents\\moni\\py')");绝对路径指明python源代码位置,注意双斜杆```*``

注意这句PyRun_SimpleString("sys.path.append('./')");添加的当前目录是指exe的当前目录,不是C源码目录

2、缺少Python27_d.lib的解决方法

不要单纯地把Python27.lib伪造成Python27_d.lib,请修改Python.h

//修改Python.h

//修改前

#ifdef _DEBUG

# define Py_DEBUG

#endif

修改Python.h

//修改后

#ifdef _DEBUG

//# define Py_DEBUG

#endif

修改Python.h

//修改前

# ifdef _DEBUG

# pragma comment(lib,"python27_d.lib")

# else

# pragma comment(lib,"python27.lib")

# endif /* _DEBUG */

修改Python.h

//修改后

# ifdef _DEBUG

# pragma comment(lib,"python27.lib")

# else

# pragma comment(lib,"python27.lib")

# endif /* _DEBUG */

//修改object.h

//修改前

#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)

#define Py_TRACE_REFS

#endif

//修改object.h

//修改后

#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)

// #define Py_TRACE_REFS

#endif

疑问

我发现程序执行的顺序出了点问题GPT改写。在Py_Initialize();和Py_Finalize(); 之间的C语言代码会在Py_Finalize(); 之后执行

参考博文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值