在DLL中启动模态对话框时的错误,请高手帮忙 -- 不胜感激 [问题点数:100分,结帖人gwinner]
- 不显示删除回复
- 显示所有回复
- 显示星级回复
- 显示得分回复
- 只显示楼主
- 收藏
gwinner 等级: 结帖率:89.47% | 楼主 发表于: 2004-08-16 16:28:09 我以“Regular DLL using shared MFC DLL"属性创建了一个动态库MyDLL,在MyDLL中用ADO操作MySQL数据库,同时MyDLL也使用了几个COM DLL,MyDLL以Multithread DLL编译.问题是:
|
回复次数:20 |
lanstar200 等级: | #1 得分:5 回复于: 2004-08-16 16:34:16 dlg對象已被銷毀,改用下面代碼試試 |
gwinner 等级: | #2 得分:0 回复于: 2004-08-16 16:39:24 lanstar200(玛雅哥布林) ,用这个方法,出现下面断言错误:
|
gwinner 等级: | |
醉马不肖 等级: | #4 得分:20 回复于: 2004-08-16 16:45:28 前面加上 |
snaill 等级: | #5 得分:10 回复于: 2004-08-16 16:48:08 有可能与Dialog的资源有关,使用lib的链接方式,CMyDlg在初始化时可能会找不到资源因而失败,你可以跟踪到DoModal()内验证以下 |
gwinner 等级: | #6 得分:0 回复于: 2004-08-16 16:48:48 zfive5(醉马不肖) ,谢谢 |
snaill 等级: | #7 得分:0 回复于: 2004-08-16 16:48:54 那就对了,你在dll文件中定义相同的资源应该可以显示了 |
flyelf 等级: 2 | #8 得分:5 回复于: 2004-08-16 16:49:59 编译错误都好解决,贴出错误提示 |
gwinner 等级: | #9 得分:0 回复于: 2004-08-16 16:50:24 对不起各位,我可能没有说清楚,我的对话框资源是在MyDLL中的 |
snaill 等级: | #10 得分:0 回复于: 2004-08-16 16:54:05 我知道,真是因为这个,lib是不会存储资源的,在运行时会去查找主程序的资源,结果肯定是没有所以才会出错 |
snaill 等级: | #11 得分:0 回复于: 2004-08-16 16:54:52 总之,在lib中使用资源是一件很麻烦的事,如果有可能,最好改改这种方式吧 |
gwinner 等级: | #12 得分:0 回复于: 2004-08-16 16:54:56 nafxcwd.lib(wincore.obj) : error LNK2005: "public: virtual void __thiscall CWnd::PreSubclassWindow(void)" (?PreSubclassWindow@CWnd@@UAEXXZ) already defined in mfc42d.lib(MFC42D.DLL) |
gwinner 等级: | #13 得分:0 回复于: 2004-08-16 17:01:00 snaill,谢谢,在主程序中加入相现的资的确可以接决此问题,但是这个程序不能这么做,因为将要使用MyDLL程序不可以。 |
gwinner 等级: | #14 得分:0 回复于: 2004-08-16 17:07:35 要使用MyDLL的程序不可编程 |
garygao 等级: | #15 得分:5 回复于: 2004-08-16 17:28:18 我也遇到类似的问题,不过我没有用到资源,我的问题是:自己写了一个dll(regular dll using shared mfc dll),然后隐式在其他应用程序里调用,但是程序运行的时候回出现两个assert failed的对话框,分别提示: |
garygao 等级: | #16 得分:0 回复于: 2004-08-16 17:31:12 我的问题在这里,关注: |
gwinner 等级: | #17 得分:0 回复于: 2004-08-16 17:45:55 garygao(窒息的鱼),如果你的问题接决,可否知会一下? |
garygao 等级: | #18 得分:0 回复于: 2004-08-16 19:13:36 ok 没问题 |
garygao 等级: | #19 得分:0 回复于: 2004-08-16 19:14:08 先等等看有没有高人出现指点一下了 |
lujunliang 等级: | #20 得分:55 回复于: 2004-08-16 20:54:21 首先一点,大家都在遇到断言的时候都喜欢把MFC的源码贴出来,其实应该先从自己编写的代码开始入手,MFC中之所以出现断言,都应该是自己写的代码没有遵循MFC的一些规则,也可以说是编程的基本规则.
|