在VC6.0中调用python

    技术2022-05-11  89

    在C++中调用python是python嵌入的一种重要的使用方式。 如果使用VC 6.0就会发现,只有直接运行一个pythorn命令串的方式能正常运行。 比如: PyRun_SimpleString("import sys/nprint sys.path"); 但是,如果是用更复杂的调用,即使是运行一个文件都不行。  Py_Initialize();  char  szFile[]  =   " pyfile.py " ;  FILE *  fp  =  fopen(szFile,  " r " );  if ( fp  ==  NULL) printf( " failed to open file! " );  else  {      if (PyRun_SimpleFile(fp, szFile)  !=   0 )     {      fclose(fp);      printf( " PyRun_SimpleFile(%s) failed! " , szFile);       return   - 1 ;     }     fclose(fp); }  Py_Finalize(); 经过研究终于发现,原来是VC版本的问题。 由于python 2.4是在VC7.1下编译的。直接利用Python的windows安装包中.h、.lib会出现错误。  如果想在VC6中嵌入python需要自己重新编译python。如果希望使用python的debug版也需要自己编译。 编译的步骤,以python 2.4.4为例: 1) 下载python代码,windows安装包中没有。应该下载 http://www.python.org/ftp/python/2.4.4/Python-2.4.4.tgz 2) 展开到一个目录%dist% 3) VC6的工程文件在%dist%/PC/VC6/pcbuild.dsw 4) 进行编译,如果没有其他需求,只编译pythoncore就可以。如果想完整编译python的全部模块,需要填加一些外部代码。具体说明可以参考相同工程目录下的readme.txt. 5) 所有的编译输出都在%dist%/PC/VC6/下。 这样就可以在VC的工程中使用了。 注意,头文件有两个目录%dist%/PC/和%dist%/Include/

    最新回复(0)