c语言 包装问题

Python024

c语言 包装问题,第1张

这个用不着递归,且用递归会有非常“丑陋”的感觉,就用普通的凑法即可。

程序:

#include "stdio.h"

#include "stdlib.h"

void main()

{

int i,j,k

for(i=1i<=600/8i++)

for(j=1j<(600-i*8)/5j++)

{

k =(600-i*8-j*5)/2

if(k*2+i*8+j*5==600)

printf("BigBox %d MedBox %d SmallBox %d\n",i,j,k)

}

system("pause")

}

以上编译运行通过。

_popen 不能把exe的输入传给python的输入的,只能给python传参。且视系统的安全设置,当账号的权限不够会导致调用失败。

如果要做到EXE与py的互相调用 就用动态链接库实现。

下面提供简单的例子,这关字数有限制,更详细的请GOOGLE

python调用C/C++:

import ctypes

dll = ctypes.windll.LoadLibrary( 'test.dll' )

dll.test()

C/C++调用python

#include <Akita/Akita.h>

#include <Python.h>

int main() {

Py_Initialize()

if (!Py_IsInitialized()) return FALSE

PyRun_SimpleString("import sys")

PyRun_SimpleString("sys.path.append(""./"")")

//import Module

PyObject* pModule = PyImport_ImportModule("hello")

if (!pModule) {

cout<<"Can""t import Module!/n"<<endl

return -1

}

PyObject* pDict = PyModule_GetDict(pModule)

if (!pDict) {

return -1

}

//fetch Function

PyObject* pFunHi = PyDict_GetItemString(pDict, "display")

PyObject_CallFunction(pFunHi, "s", "Crazybaby")

Py_DECREF(pFunHi)

//Release

Py_DECREF(pModule)

Py_Finalize()

return 0

}

Akita/Akita.h,Python.h这两个文件请上网下载。

你的程序运行成功后,编译器都会自动生成一个后缀为xxx.exe的运行文件(xxx为你创建的文件的名字)。

而生成的位置,一般和你创建的文件在同一个文件夹下面!

双击这个exe文件就可以执行程序了。复制这个exe文件到其它电脑上一般都可以执行。