research:embeddedpython
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| research:embeddedpython [2014/01/27 00:22] – [boost python 사용하기] changwoo | research:embeddedpython [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 127: | 줄 127: | ||
| === C의 데이터를 파이썬의 객체형으로 표현 === | === C의 데이터를 파이썬의 객체형으로 표현 === | ||
| - | 우선 C의 데이터를 파이썬의 객체형으로 표현하는 법에 대해 설명합니다. C에서 파이썬의 문자열을 생성하는 함수는 [[http:// | + | 우선 C의 데이터를 파이썬의 객체형으로 표현하는 법에 대해 설명합니다. C에서 파이썬의 문자열을 생성하는 함수는 [[http:// |
| <code C> | <code C> | ||
| char *str = NULL; | char *str = NULL; | ||
| 줄 479: | 줄 479: | ||
| ==== 두번째 boost.python 예제 ==== | ==== 두번째 boost.python 예제 ==== | ||
| + | |||
| <code cpp call.cpp> | <code cpp call.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | namespace bp = boost:: | ||
| + | |||
| + | void workaround_for_local_modules() | ||
| + | { | ||
| + | PyRun_SimpleString( | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | int main(int argc, char** argv) | ||
| + | { | ||
| + | if (argc < 3) { | ||
| + | fprintf(stderr," | ||
| + | return 1; | ||
| + | } | ||
| + | |||
| + | Py_Initialize(); | ||
| + | workaround_for_local_modules(); | ||
| + | |||
| + | try { | ||
| + | bp:: | ||
| + | bp:: | ||
| + | bp:: | ||
| + | |||
| + | module_name = bp:: | ||
| + | module = bp:: | ||
| + | func = module.attr(argv[2]); | ||
| + | |||
| + | if(func && PyCallable_Check(func.ptr())) { | ||
| + | bp:: | ||
| + | |||
| + | tuple = bp:: | ||
| + | for(int i = 0; i < argc - 3; ++i) { | ||
| + | PyObject* arg; | ||
| + | arg = PyInt_FromLong(atoi(argv[i+3])); | ||
| + | PyTuple_SetItem(tuple.ptr(), | ||
| + | } | ||
| + | |||
| + | bp:: | ||
| + | int value; | ||
| + | |||
| + | valueObj = bp:: | ||
| + | value = bp:: | ||
| + | |||
| + | std:: | ||
| + | } | ||
| + | |||
| + | } catch(bp:: | ||
| + | PyErr_Print(); | ||
| + | } | ||
| + | |||
| + | Py_Finalize(); | ||
| + | return EXIT_SUCCESS; | ||
| + | } | ||
| </ | </ | ||
| + | '' | ||
| + | |||
| + | |||
| + | ==== 세번째 boost.python 예제 ==== | ||
| + | <code cpp count_href.cpp> | ||
| + | |||
| + | </ | ||
| ===== 참고 사이트 ===== | ===== 참고 사이트 ===== | ||
| * [[http:// | * [[http:// | ||
| * [[https:// | * [[https:// | ||
| * [[http:// | * [[http:// | ||
research/embeddedpython.1390782156.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)
