私はまだこの種の拡張に慣れていません(C ++とPythonのバックグラウンドは良好ですが)
私が望んでいたのは、ctypesモジュールを使用して、これまで機能していたC++関数の例にデータを渡すことです。
test.dllファイル
#define DLLEXPORT extern "C" __declspec(dllexport)
DLLEXPORT int sum(int a, int b) {
return a + b;
}
sum_test.pyファイル:
from ctypes import cdll
mydll = cdll.LoadLibrary('test.dll')
mydll.sum(5, 3)
結果は8で、うまく機能します...
注:これを使用してブレンダー用のアドオン(プラグイン)を開発しています。C++関数に渡すデータは巨大な配列(タプルまたは任意のタイプの配列)であり、このデータはGPUに渡されて処理されますOpenCLを使用
主にC++のワークフローは、ポインターを渡すことです(これにより、配列データ全体がGPUにコピーされます)
したがって、質問は次のとおりです。C++内でそのタプルポインタを取得するための最良の方法(最速でもあります)(うまくいけば、PythonとC ++で何が起こるかを説明することで)