vc6 com转为vc8的问题

aqiu348503 2010-01-04 10:20:16
我用vc6写的atl组合控件可以正常调用,把工程转到vc8下编译通过运行时出现问题,设断点调试发现OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)函数进不去,vc6下可以进,有谁遇到过类似问题请帮下忙。
...全文
91 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞天赤狐 2010-01-04
  • 打赏
  • 举报
回复
vc2005中没有那个函数的source?
vclongking 2010-01-04
  • 打赏
  • 举报
回复
学习
nodiebirdcomeback 2010-01-04
  • 打赏
  • 举报
回复
ATL版本好象不太一样了
aqiu348503 2010-01-04
  • 打赏
  • 举报
回复
怎么跟踪消息的流向啊,tttyd能详细点吗
rendao0563 2010-01-04
  • 打赏
  • 举报
回复
本身就会有一些差异.用VC6和VC8分别建立不同的工程.然后用文件比较工具比较它们之间的差异.
雪影 2010-01-04
  • 打赏
  • 举报
回复
检查一下WM_INITDIALOG消息的流向.
跟踪WM_INITDIALOG消息,看那个函数处理该消息了.
aqiu348503 2010-01-04
  • 打赏
  • 举报
回复
问题解决了,是由于vc8的atlctl.h中有一个OnInitDialog函数(vc6的atlctl.h中没有)
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL bHandled)
{
// initialize controls in dialog with DLGINIT resource section
ExecuteDlgInit(static_cast<T*>(this)->IDD);
bHandled = TRUE;
return 1;
}
程序运行时进了这个函数,返回了TRUE,就不再执行控件的OnInitDialog函数了,但不知道为什么会进这个函数
雪影 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 aqiu348503 的回复:]
怎么跟踪消息的流向啊,tttyd能详细点吗
[/Quote]
使用条件断点啊

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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