Trong một dự án C++, tôi sử dụng API gọi JNI để khởi chạy một JVM. Tôi đã thực hiện một wrapper nhỏ arount JVM vì vậy tôi có thể sử dụng tất cả các bộ phận cần thiết trong một thời trang OO. Cho đến nay hoạt động rất tốt.JNI_CreateJavaVM: Buffer overrun nếu tôi ném một ngoại lệ trong trường hợp thất bại
Bây giờ, nếu JVM không bắt đầu (JNI_CreateJavaVM
trả về giá trị < 0) Tôi muốn nêu một ngoại lệ trong mã C++ của mình. Nhưng nếu tôi ném ngoại lệ sau JNI_CreateJavaVM
, tôi sẽ bị tràn bộ đệm. Nếu tôi tăng ngoại lệ mà không có cuộc gọi JNI_CreateJavaVM
, nó hoạt động như mong đợi.
Có ai có đầu mối về vấn đề có thể có ở đây không? Hoặc làm thế nào để gỡ lỗi này?
Môi trường: Windows, Visual Studio 2008 JDK: jrockit27.6jdk16005, nhưng xảy ra với một chứng khoán SUN cũng
Cheers Dominik
Bạn đã thử jvm-> DestroyJavaVM(); trước khi ném? –