潘志宝
3 天以前 7fce3006ecd0b670e33c2d3ba123778e79e2e943
iailab-module-model/iailab-module-model-biz/src/main/resources/template/cpp.vm
@@ -17,7 +17,21 @@
   {
      PyGILThreadLock lock;
      PyObject* pModule = create_py_module("${pyModule}.${pyName}");
      jclass hashmapClass = env->FindClass("java/util/HashMap");
      jmethodID getMID = env->GetMethodID(hashmapClass, "get", "(Ljava/lang/Object;)Ljava/lang/Object;");
      jstring keyJString = env->NewStringUTF("pyFile");
      jobject javaValueObj = env->CallObjectMethod(settings, getMID, keyJString);
      jstring javaStringValue = (jstring)javaValueObj;
      const char* strValue = env->GetStringUTFChars(javaStringValue, NULL);
      //*************导入模型******************
      PyObject* pModule = create_py_module(strValue);
      // 释放java占用内存
      env->ReleaseStringUTFChars(javaStringValue, strValue);
      env->DeleteLocalRef(javaStringValue);
      env->DeleteLocalRef(javaValueObj);
      env->DeleteLocalRef(keyJString);
      env->DeleteLocalRef(hashmapClass);
      if (pModule == NULL)
      {
         cout << "model error" << endl;
@@ -80,7 +94,7 @@
         cout << "ConvertPydictToJhmap error" << endl;
         throw "函数返回值异常!";
      }
      delete pModule;
      /*delete pModule;
      pModule = nullptr;
      delete pModule;
@@ -108,6 +122,11 @@
      pArg = nullptr;
      delete pArg;
      Py_DECREF(pReturn);
      Py_DECREF(pFunc);
      Py_DECREF(pModule);
      Py_CLEAR(pModule);*/
      return result;
   }
   catch (const char* msg)