私はここ1週間ほど苦労しています。要するに、私はC++でプログラムを書いて、Pythonとリンクして(FlaskやDjangoを使ってWebアプリケーションを構築したい)Ctypes:C(++)からPythonへの文字列の転送
int、charまたはvoidを返すMy C関数は正常に動作しますが、問題は文字列を返す必要がある場合です。私は多かれ少なかれ問題の原因を理解しています(私のC関数はポインタを返します、私のPython関数は有用なデータとして扱えません)。
ここに私が書いたコード例があります。
extern "C" {
int addint(int a) {
return a + 1;
}
const char* hello() {
return "hello";
}
}
と私のpywrapper.pyファイル内
は、私は次のようしている:def addint(number):
result = lib.addint(c_int(number))
return result
def saystr():
result = lib.hello()
return result
if __name__ == "__main__":
print('addint: ', addint(5))
print('saystr: ', saystr())
私の出力は次のとおりです。
addint: 6
saystr: -354261249
私のmain.cppにファイルでは、私は次のような機能を持っていますしたがって、最初の関数は正常に動作します。しかし、2番目の関数が「こんにちは」を返すためには何ができますか? ctypes documentation showsとして
驚くべきことに、gracias :) – vgratian