动态库窗口可见,但是主程序无法对窗口内部控件进行操作

原来身后 2015-09-09 08:27:29
我自己写了一个动态库,封装了一个窗口类,对外提供了一个接口来完成对窗口内部的控件操作,主程序运行起来后对动态库窗口进行初始化成功,在OnInitDialog函数中可以获取控件的指针进行操作。当下位机给我返回一条指令后,我对指令解析完成后,需要对窗口对应的控件进行操作达到进行人机交互,此时定义窗口对象调用对应的接口函数。问题出现了,窗口指针非空,但是句柄为空,只要对窗口控件进行操作会导致程序崩溃。我断点调试,从程序运行到崩溃,动态库窗口的析构函数和DestroyWindow函数未执行,只有当我执行主程序关闭时才会执行动态库窗口的析构函数。我该如何才能操作对应窗口的控件???
...全文
183 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
原来身后 2015-09-11
  • 打赏
  • 举报
回复
不是,可是我该如何获取到呢?
信阳毛尖 2015-09-11
  • 打赏
  • 举报
回复
CircuitCard.cpp中的 m_PressureVoltageSurveyCardDlg 和

WashAndCheckUnitDlg.cpp中的m_PressureVoltageSurveyCard是同一个对象吗?
信阳毛尖 2015-09-11
  • 打赏
  • 举报
回复
引用 10 楼 wangqing10520 的回复:
不是,可是我该如何获取到呢?
我彻底给跪了 我怀疑你是逻辑有问题,对象调用关系你先屡清楚了,逻辑对的话,dlg对象你new出来并Create出窗口了,怎么可能获取不到其子窗口呢
原来身后 2015-09-10
  • 打赏
  • 举报
回复
那是因为我发现无法操作控件后打算在窗口创建后将控件指针备份到父类,后来发现这种方法行不通,所以这个参数现在没用,所以置空了
信阳毛尖 2015-09-10
  • 打赏
  • 举报
回复
m_PressureVoltageSurveyCard->CheckPressure(NULL,Sel,strpar1) --------------------------------------------------------------------------------------------- 这个函数第一个参数怎么就传NULL了呢?m_pEdit这个是PressureVoltageSurveyCardDlg类的成员变量吗?什么时候给它赋值的?
原来身后 2015-09-10
  • 打赏
  • 举报
回复
在OnCreate函数中调用的
原来身后 2015-09-10
  • 打赏
  • 举报
回复
动态库已经初始化完成,并且主程序已经将动态库界面显示出来了,此刻显示的就是动态库界面
信阳毛尖 2015-09-10
  • 打赏
  • 举报
回复
你那个对话框在主程序中是怎么创建的,创建窗口代码贴出来
二班的码农 2015-09-09
  • 打赏
  • 举报
回复
句柄为空,那估计是没有将动态库中窗口资源加载进内存中
原来身后 2015-09-09
  • 打赏
  • 举报
回复
邓学彬 2015-09-09
  • 打赏
  • 举报
回复
没弄清楚楼主的具体实现过程。 建议上代码。(不需要完整代码,有关键部分就够了)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧