代码之家  ›  专栏  ›  技术社区  ›  Dominik Fretz

JNI_CreateJavaVM:如果在失败时抛出异常,则缓冲区溢出

  •  6
  • Dominik Fretz  · 技术社区  · 16 年前

    在C++项目中,我使用JNI调用API启动JVM。我已经在JVM上做了一个小包装,这样我就可以以面向对象的方式使用所有需要的部分。到目前为止,效果很好。

    现在,如果JVM没有启动( JNI_CreateJavaVM JNI_CreateJavaVM ,我的缓冲区溢出。如果我在没有 呼叫,它按预期工作。

    环境:Windows,Visual Studio 2008 JDK:jrockit27.6jdk16005,但SUN stock one也会出现这种情况

    干杯 多米尼克

    1 回复  |  直到 16 年前
        1
  •  2
  •   Android Eve    15 年前

    在我看来,您正在向无效内存抛出指针或引用。通过引用抛出异常是个好主意,但要确保对象不在堆栈上。如果该对象是使用“new”分配的,则需要对此进行适当管理(否则会出现泄漏)。我的方法是尽可能多地抛出const对象。

    这有用吗?

    推荐文章