dengzedong
2025-04-15 cddcd262f1a0e142847c0fc4bff7d1ffb86cdac0
iailab-module-model/iailab-module-model-biz/src/main/resources/template/cpp.vm
@@ -37,6 +37,7 @@
         cout << "model error" << endl;
         throw "模块调用失败!";
      }
      cout << "load pymodel finished" << endl;
      //*************导入函数******************
      PyObject* pFunc = PyObject_GetAttrString(pModule, "${entity.methodName}");
@@ -45,6 +46,7 @@
         cout << "func error" << endl;
         throw "函数调用失败!";
      }
      cout << "load pyfunc finished" << endl;
#{foreach} ($column in [1..$entity.dataLength])
      PyObject* data_${column} = ConvertJdarrToPydarr(env, data${column});
#{end}
@@ -84,6 +86,18 @@
         cout << "return error" << endl;
         throw "函数返回值异常!";
      }
      cout << "load pyreturn finished" << endl;
      PyObject* json_module = create_py_module("json");
      PyObject* dumps_func = PyObject_GetAttrString(json_module, "dumps");
      PyObject* json_str = PyObject_CallObject(dumps_func, PyTuple_Pack(1, pReturn));
      if (json_str == NULL) {
      cout << "json_str is null" << endl;
      PyErr_Print();
      return NULL;
      }
      const char* json_cstr = PyUnicode_AsUTF8(json_str);
      cout << "pyreturn" << json_cstr << endl;
      //*******************返回数据封装************************
      // 开辟返回数据内存空间,转换数据,拆分数据
@@ -92,40 +106,8 @@
      if (result == NULL)
      {
         cout << "ConvertPydictToJhmap error" << endl;
         throw "函数返回值异常!";
         throw "函数返回值解析异常!";
      }
      /*delete pModule;
      pModule = nullptr;
      delete pModule;
      delete pFunc;
      pFunc = nullptr;
      delete pFunc;
#{foreach} ($column in [1..$entity.dataLength])
      delete[] data_${column};
      data_${column} = nullptr;
      delete data_${column};
#{end}
#{if}($entity.model==1)
      delete model_path;
      model_path = nullptr;
      delete model_path;
#{end}
      delete settings_1;
      settings_1 = nullptr;
      delete settings_1;
      delete[] pArg;
      pArg = nullptr;
      delete pArg;
      Py_DECREF(pReturn);
      Py_DECREF(pFunc);
      Py_DECREF(pModule);
      Py_CLEAR(pModule);*/
      return result;
   }