程序:
#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文件到其它电脑上一般都可以执行。