在Windows XP上的Java应用程序(JRE 1.7.0_21)中,我调用了一个本机方法:
public native String getImage(...);
...这是在Visual C ++ 10.0 DLL中。这将显示一个模态对话框。在显示对话框之前,我正确地将对话框的父句柄设置为java应用程序窗口,在该窗口的基础上将弹出此对话框。
问题是我的应用程序在此函数中调用DoModal()后立即崩溃。如果我将父窗口的句柄保留为null,那么对话框就可以正常运行而不会崩溃。只有在将父窗口的句柄设置为java应用程序时才会崩溃。
如果我在dll part / jni中遗漏了某些内容,请告诉我。
答案 0 :(得分:0)
您通常无法在非MFC可执行文件中使用“MFC扩展DLL”。
阅读Extension DLLs,特别是:
客户端可执行文件必须是使用_AFXDLL编译的MFC应用程序 定义
和
只有MFC可执行文件(应用程序或常规DLL) 使用共享版本的MFC构建可以使用扩展DLL。
设置一个新项目,为MFC DLL类型选择“Regular DLL”。