我现在编写一个程序,其中在一个mfc的扩展dll中使用到了CFiledailog,但一旦DoModal的时候,就会引起整个程序闪退。
诡异的是,这种情况不是每次都会出现,过段时间重新编译一下,它就正常了,或者更改一些其他的代码后再编译,它也正常了。也就是说,好些每次编译是随机会出现这个问题,但只要编译好后,如果它会闪退,就一直会闪退。
我不知道是哪出了问题,是主程序?是dll?
我尝试的一些方法,包括创建对象的时候填写完整参数,将DoModal放在try模块中,等等,都无法解决问题。
我使用的环境是xpsp3,vc2008+sp1,release版本。我必须在扩展dll中使用它。
请教啊请教!
CFiledailog,闪退
诡异的是,这种情况不是每次都会出现,过段时间重新编译一下,它就正常了,或者更改一些其他的代码后再编译,它也正常了。也就是说,好些每次编译是随机会出现这个问题,但只要编译好后,如果它会闪退,就一直会闪退。
我不知道是哪出了问题,是主程序?是dll?
我尝试的一些方法,包括创建对象的时候填写完整参数,将DoModal放在try模块中,等等,都无法解决问题。
我使用的环境是xpsp3,vc2008+sp1,release版本。我必须在扩展dll中使用它。
请教啊请教!
CFiledailog,闪退
#undef _WIN32_WINNT
#endif以及使用GetOpenFileName的方法,都一样的。
能看到文件选择对话框创建出来,但马上闪退,程序也闪退。
由于我用到了其他的dll,只有release版的,所以我也是直接release编译,木有debug
我找了所有网上的方法,都无效
现在我感兴趣的是,为什么同样的环境,有时候能编译正常,有时候闪退
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// 这个 DLL 应用时一定在主程序资源里面增加一个 FILEOPEN_TEMPLATE 对话框模板
// 否则 DoModal 不出现停留的对话框
// 2009 03 26
//
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//FILEOPEN_TEMPLATE DIALOGEX 0, 0, 95, 15
STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS
FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN
LTEXT "",stc32,0,2,8,8,NOT WS_VISIBLE | NOT WS_GROUP
GROUPBOX "",6000,10,2,81,9,NOT WS_VISIBLE
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
"FILEOPEN_TEMPLATE", DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 88
TOPMARGIN, 7
BOTTOMMARGIN, 8
END
END
#endif // APSTUDIO_INVOKED#endif // 英语(美国) resources
/////////////////////////////////////////////////////////////////////////////
class AFX_EXT_CLASS CPreviewFileDialog : public CFileDialog
设置
m_ofn.lpTemplateName = "FILEOPEN_TEMPLATE";
十分感谢gordon3000!!!!!
我的尝试:
1、在v中只定义一个sqlite db对象,不打开,不关闭。
2、打开数据库,不关闭。
3、关闭数据库。
4、在v中打开与m中不同的数据库。
都是一样的情况。