Microsoft Office Spreadsheet 11.0的BUG,谁有办法?

菜牛 2005-10-01 03:42:25
在一个对话框上,插入一个Microsoft Office Spreadsheet 11.0控件(Office 2003带的),再插入一个别的具有焦点的控件,比如EditBox,运行之后,用鼠标在Microsoft Office Spreadsheet 11.0控件和EditBox之间切换一下焦点(如果用Tab切换没问题),比如焦点:EditBox->Microsoft Office Spreadsheet 11.0控件,一定要使两个控件各得到一次焦点,再关闭对话框,出现应用程序错误:

"0x5adc1531"指令引用的"0x00000014"内存。该内存不能为"read"。

用调试运行定位在cmdtarg.cpp中:

CCmdTarget::~CCmdTarget()
{
#ifndef _AFX_NO_OLE_SUPPORT
if (m_xDispatch.m_vtbl != 0)
((COleDispatchImpl*)&m_xDispatch)->Disconnect();
ASSERT(m_dwRef <= 1); //<-中断在这句
#endif
#ifdef _AFXDLL
m_pModuleState = NULL;
#endif
}

此时m_dwRef的值,等于Microsoft Office Spreadsheet 11.0控件获得焦点(鼠标设置)的次数(+1),而原因是m_xDispatch.m_vtb1为0,所以没有调用下面这个Disconnect()。

使用Microsoft Office Spreadsheet 10.0控件(Office 2002带的)则没有这个问题。

我的环境:XP SP2,VC.net 2003简体中文版。

正在查找解决方法,主要是想搞清楚出问题的原因。
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
legendhui 2005-10-08
  • 打赏
  • 举报
回复
gz
菜牛 2005-10-08
  • 打赏
  • 举报
回复
我在Microsoft的论坛上发了个帖子,几天了也没人回答。
lianglp 2005-10-08
  • 打赏
  • 举报
回复
gz
MuseIn 2005-10-07
  • 打赏
  • 举报
回复
try.
菜牛 2005-10-06
  • 打赏
  • 举报
回复
再看看

15,979

社区成员

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

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