09/09/16 18:05:00
>>888
ひょっとしてctypesよりboost.pythonの方が良いっていう意味のレスですか?
そうでないとしても、それをきっかけにしてboost.pythonも検討してみました。
boost.pythonとしては、まだunicode文字列を引数としてどう受け渡すのか
方式が定まってないっぽいんですが、とりあえずPyObject* opとして受け取って
PyUnicode_AS_DATA(op)でconst char*として実際のデータバッファのアドレスを取り出して、
それをwchar_t*にキャストして自作のC++関数などに渡せば良さそうです。
C++ではwchar_t*として扱うPython独立なプログラムとして作成して、
引数を渡すところだけはこの変換をするために一枚かぶせる感じです。
unicodeの実装がwchar_tではない場合には困るんすが、C++だし、
とりあえずテンプレート使っておけば後々それほど困らないでしょうし。
これでunicode文字列をC++の中で書き換えることもできました。
boost.pythonって、ほんとに楽にC++とやりとりできますね。