新手发一贴,目前没分,只能发在非技术区,等会回答几个问题给分,求指导

dwordptr 2012-05-21 08:36:36
我调用Word,却一直提示初始化失败,代码如下

HRESULT hr;
hr = CoInitialize(NULL);
if(FAILED(hr))
{
AfxMessageBox(_T("Failed to call Coinitialize()" ));
}
COleVariant vFalse(short(FALSE));
COleVariant vOpt(DISP_E_PARAMNOTFOUND,VT_ERROR);
COleVariant vTrue(short(TRUE));
_Application m_app;
try
{
if(!m_app.CreateDispatch(_T("Word.Application")))
{
AfxMessageBox(_T("无法启动Word"));
return FALSE;
}
}

catch(COleException *e)
{
LPVOID lpMsg;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, e->m_sc,
MAKELANGID(LANG_NEUTRAL,
SUBLANG_DEFAULT),(LPTSTR) &lpMsg,
0, NULL);
::MessageBox(NULL, (LPCTSTR)lpMsg, "COM错误,无法与MSWord取得联系",
MB_OK | MB_SETFOREGROUND);
::LocalFree( lpMsg );
m_app.Quit(vFalse, vOpt, vOpt);
}
catch(COleDispatchException *e)
{
char msg[512];
sprintf(msg, "运行时错误'%d':\n\n%s",
e->m_scError & 0x0000FFFF, e->m_strDescription);
::MessageBox(NULL, msg, "服务器错误",
MB_OK | MB_SETFOREGROUND);
m_app.Quit(vFalse, vOpt, vOpt);
}
catch(CException *e)
{
AfxMessageBox("未知错误");
m_app.Quit(vFalse, vOpt, vOpt);
}

就是一直在CreateDispatch那儿错误,求指点啊,我的是Word2007,注册表HKEY_ROOT_CLASS下也有Word.Application,郁闷两个了,上CSDN发个贴求助,望各位不吝指点。
...全文
27 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,440

社区成员

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

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