Pythonで書かれたアプリケーションがあります。
アプリケーションは、(ctypesを使用して)dll内のいくつかの関数を呼び出し、Python C APIからいくつかの関数を呼び出して、(異なる)pythonモジュール内のいくつかの関数をロードして実行します。これにより、WindowsError: exception: access violation reading 0x00000004
一部のcoutデバッグでは、PythonCAPIの呼び出しでアクセス違反が発生することがわかります。
DLLがPythonモジュールを正常にロードし、スタンドアロンの.exeとしてテストすると完全に実行されることはわかっていますが、Pythonアプリケーションから実行すると、このアクセス違反エラーが発生します。
最初に、DLLでPy_NewInterpreterを使用して、これらのPythonモジュール関数を実行するための新しい個別のスペースを作成する必要があります。アプリケーションとモジュールがDLLによって実行されてデータを共有する必要がないため、これは便利なように思われます。 http://docs.python.org/2/c-api/init.html#Py_NewInterpreter
ただし、Py_NewInterpreterを使用した最初のテストでは、さらにエラーが発生してクラッシュするだけで失敗することがわかりました。
だから私の質問はこれをどのように実装する必要があります/PythonモジュールのDLLロードを機能させるために何をする必要がありますか?