C++Python 스 크 립 트 의 함수 인 스 턴 스 코드 를 호출 합 니 다.

3386 단어 c + +python함수.
1.환경 설정
python 을 설치 한 후 python 의 include 와 lib 를 자신의 프로젝트 디 렉 터 리 에 복사 합 니 다.

그리고 공사 에 포 함 됩 니 다.

2.예
먼저 python 테스트 스 크 립 트 를 작성 합 니 다.다음 과 같 습 니 다.

이 스 크 립 트 에는 두 함수 Hello()와 가 정의 되 어 있 습 니 다.add()。제 스 크 립 트 파일 이름 은 my test.py 입 니 다.
C++코드:

#include "stdafx.h" 
#include <stdlib.h>
#include <iostream> 
#include "include\Python.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
  //   Python   
  Py_Initialize();
  PyRun_SimpleString("import sys");
  //  Insert     
  //PyRun_SimpleString(chdir_cmd.c_str());
  PyRun_SimpleString("sys.path.append('./')");
  //     
  PyObject* pModule = PyImport_ImportModule("mytest");
  if (!pModule)
  {
    cout << "Python get module failed." << endl;
    return 0;
  }
  cout << "Python get module succeed." << endl;
  PyObject * pFunc = NULL;
  pFunc = PyObject_GetAttrString(pModule, "Hello");
  PyEval_CallObject(pFunc, NULL);
  //  Insert   _add   
  PyObject* pv = PyObject_GetAttrString(pModule, "_add");
  if (!pv || !PyCallable_Check(pv))
  {
    cout << "Can't find funftion (_add)" << endl;
    return 0;
  }
  cout << "Get function (_add) succeed." << endl;
  //         ,args             
  PyObject* args = PyTuple_New(2);
  // Long      Python       
  PyObject* arg1 = PyLong_FromLong(4);
  PyObject* arg2 = PyLong_FromLong(3);
  // arg1   arg         
  PyTuple_SetItem(args, 0, arg1);
  // arg1   arg         
  PyTuple_SetItem(args, 1, arg2);
  //        ,       
  PyObject* pRet = PyObject_CallObject(pv, args);
  if (pRet)
  {
    //       long  
    long result = PyLong_AsLong(pRet);
    cout << "result:" << result << endl ;
  }
  Py_Finalize();
  system("pause");
  return 0;
}
C++코드 가 인용 할 수 있 도록 스 크 립 트 가 놓 인 위 치 를 주의 하 십시오.
실행 결과:

3.python 코드 처리
소프트웨어 를 발표 할 때,일반적으로 우 리 는 코드 가 다른 사람 에 게 직접 보 이 는 것 을 원 하지 않 는 다.
위의 Debug 디 렉 터 리 의 exe 를 단독으로 실행 하려 면 python 스 크 립 트 를 복사 해 야 합 니 다.다른 사람 이 나의 코드 를 직접 볼 수 없 도록 내 가 복사 한 것 은 생 성 된.pyc 파일 이다.

복사 한 후 파일 이름 변경:

간단 한 python 코드 의 암호 화 를 실현 하 였 습 니 다.
하지만 역 컴 파일 이 가능 하 다 고 하 는데 저 한 테 는 충분 합 니 다.
총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 상세 한 C++Python 스 크 립 트 의 함 수 를 호출 하 는 인 스 턴 스 코드 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기