COM问题求教!

dennyzdg 2002-03-15 11:09:50
各位高手:求教一个COM问题。
现在我急着要写一个程序,用于为某算法作实验,而且必须在四月前写出文章来,但是碰到了一个才学粗浅的我无法解决的问题,我在国内外几个论坛上都求过帮助,只是收效甚微,所以只能冒昧的向您求助,失礼之处,还望海涵!
我要用微软提供的正则表达式匹配类,存在于vbscript.dll中,其中的第二个typelib是版本1.0的,如果装过script 5.5,那么第三个就是版本为5.5的。我在VC6.0(windows2000 advanced server)中,从这个tlb生成新的类,然后如下调用它:
if(m_regExp.CreateDispatch(__uuidof(RegExp)) == FALSE)
{
AfxMessageBox("CreateDispatch Failed!");
return;
}
IMatchCollection2 * temp;
m_regExp.SetIgnoreCase(TRUE);
m_regExp.SetPattern(szPattern);
if(m_regExp.Test(szContent)){} //***********
其中的RegExp定义在头文件中,我从RegExp.tlh中拷贝所得!

但是执行到打***这一句时就出现不该出现的问题,会有Exception冒出来!我跟踪过,但最后跟不进去了。
在OLEDISP2.CPP中Row 343:
// make the call
SCODE sc = m_lpDispatch->Invoke(dwDispID, IID_NULL, 0, wFlags,
&dispparams, pvarResult, &excepInfo, &nArgErr);
结果返回结果sc为负,为什么?其中pvarResult, excepInfo, nArgErr都是在前面刚刚生成的,没错,dwDispID=10005, wFlags=1, dispparams也是对的。
因而实在查不出来,希望您能于百忙中帮我诊断一下,不胜感激!

万分感谢!
...全文
55 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hollysky 2002-03-27
  • 打赏
  • 举报
回复
SCODE sc = m_lpDispatch->Invoke(dwDispID, IID_NULL, 0, wFlags,
&dispparams, pvarResult, &excepInfo, &nArgErr);
我想你的dispparams是错的
你把该方法(或属性)的参数贴出来

1,650

社区成员

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

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