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 (바깥 편집)