应用程序崩溃时调用JNI模式对话框

时间:2013-12-12 18:46:11

标签: java visual-c++ dll java-native-interface native

在Windows XP上的Java应用程序(JRE 1.7.0_21)中,我调用了一个本机方法:

public native String getImage(...);

...这是在Visual C ++ 10.0 DLL中。这将显示一个模态对话框。在显示对话框之前,我正确地将对话框的父句柄设置为java应用程序窗口,在该窗口的基础上将弹出此对话框。

问题是我的应用程序在此函数中调用DoModal()后立即崩溃。如果我将父窗口的句柄保留为null,那么对话框就可以正常运行而不会崩溃。只有在将父窗口的句柄设置为java应用程序时才会崩溃。

如果我在dll part / jni中遗漏了某些内容,请告诉我。

1 个答案:

答案 0 :(得分:0)

您通常无法在非MFC可执行文件中使用“MFC扩展DLL”。

阅读Extension DLLs,特别是:

  

客户端可执行文件必须是使用_AFXDLL编译的MFC应用程序   定义

  

只有MFC可执行文件(应用程序或常规DLL)   使用共享版本的MFC构建可以使用扩展DLL。

设置一个新项目,为MFC DLL类型选择“Regular DLL”。