Tôi có câu hỏi nhanh về cách xử lý các trường hợp ngoại lệ được các thư viện theo JNA ...JNA bắt ngoại lệ
Khi tôi ném ngoại lệ vào mã gốc cơ bản, JNA sẽ nhận được lỗi truy cập bộ nhớ không hợp lệ. Tôi giả định này là bởi vì các thư viện C không thể ném một ngoại lệ lên thông qua nó ngăn xếp (nó thực sự C + +/CLR nhưng có C xuất khẩu)? Vì vậy, không có cách nào thực sự để báo cáo ngoại lệ cho Java? Hoặc "nó nên hoạt động" và tôi chỉ làm điều gì đó cực kỳ sai?
DllExport void Initialize(char* dir)
{
throw gcnew System::Exception("Testing");
}
Nó sẽ được tốt đẹp cho Java để có thể phát hiện những trường hợp ngoại lệ ném, và tôi đoán tôi thực sự có thể nhìn vào đi qua một con trỏ nhớ vào tất cả xuất khẩu C của tôi và kiểm tra xem nếu đó là những null hay không, nhưng có vẻ như một đường vòng.
Vì vậy, tôi muốn bắt nó ở bên C++/CLR, và chuyển nó trở lại vào java như nhiều tham số? (Hoặc trong trường hợp muốn báo cáo lỗi đơn giản, chỉ cần có tham số thứ hai, "char * err" sẽ là đủ). Tôi nghĩ tôi có lẽ phải làm vậy. – StrangeWill