报错:Unhandled exception in Tester.exe: 0xC0000005: Access Violation.源码:
_Application *pWordApp = NULL;
Documents *pWordDocs = NULL;
_Document *pWordDoc = NULL;
Selection *pWordSel = NULL;
Range *pWordRange = NULL; HRESULT hr = ::CoInitialize(NULL);
if(SUCCEEDED(hr))
{
CLSID clsid;
CLSIDFromProgID(L"Word.Application", &clsid); hr = ::CoCreateInstance(clsid,
NULL,
CLSCTX_SERVER,
__uuidof(_Application),
(LPVOID*)&pWordApp); if(SUCCEEDED(hr))
{
COleVariant vOpt1(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt2(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt3(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt4(DISP_E_PARAMNOTFOUND, VT_ERROR);
pWordDocs = pWordApp->GetDocuments();
pWordDoc = pWordDocs->Add();//<-----这句时出错
pWordSel = pWordApp->GetSelection(); pWordSel->MoveStart();
pWordSel->InsertAfter("Test Word Automation");
COleVariant varFN("E:\\ttt.doc");
pWordDoc->SaveAs(&varFN); pWordApp->Release();
pWordDocs->Release();
pWordDoc->Release();
pWordSel->Release();
// pWordRange->Release();
}
::CoUninitialize();
}
_Application *pWordApp = NULL;
Documents *pWordDocs = NULL;
_Document *pWordDoc = NULL;
Selection *pWordSel = NULL;
Range *pWordRange = NULL; HRESULT hr = ::CoInitialize(NULL);
if(SUCCEEDED(hr))
{
CLSID clsid;
CLSIDFromProgID(L"Word.Application", &clsid); hr = ::CoCreateInstance(clsid,
NULL,
CLSCTX_SERVER,
__uuidof(_Application),
(LPVOID*)&pWordApp); if(SUCCEEDED(hr))
{
COleVariant vOpt1(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt2(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt3(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt4(DISP_E_PARAMNOTFOUND, VT_ERROR);
pWordDocs = pWordApp->GetDocuments();
pWordDoc = pWordDocs->Add();//<-----这句时出错
pWordSel = pWordApp->GetSelection(); pWordSel->MoveStart();
pWordSel->InsertAfter("Test Word Automation");
COleVariant varFN("E:\\ttt.doc");
pWordDoc->SaveAs(&varFN); pWordApp->Release();
pWordDocs->Release();
pWordDoc->Release();
pWordSel->Release();
// pWordRange->Release();
}
::CoUninitialize();
}
解决方案 »
- 编译的时候说找不到TEXT这个类型,为什么
- 【急】关于屏幕广播
- 十六进制转换器的一个报错
- 这段程序有什么错误?如何改正?定义的两个互相包含指向对方的指针,按照先声明才能用的话,该怎么定义呢?
- 用ADO中的ID.什么类来列举数据库表时会把系统表也列出来,怎样不要这些表,只列我建的表呢?
- 如何用VC制作自己的安装程序(我只有100分)
- <<windows网络编程技术>>(机械)和<<windows网络编程(第2版)>>(清华)有必要全买吗?
- 怎么在CStringArray中实现快速的查找?
- 如何判断一个文件是否为MP4文件
- VC使用问题
- 如何把一个EXE里的图标存到另一个EXE里?
- 怎样将使用过inet_addr()函数的IP地址再次转换成字符串型?
_Application *pWordApp = NULL;
Documents *pWordDocs = NULL;
_Document *pWordDoc = NULL;
Selection *pWordSel = NULL;
Range *pWordRange = NULL; HRESULT hr = ::CoInitialize(NULL);
if(SUCCEEDED(hr))
{
CLSID clsid;
CLSIDFromProgID(L"Word.Application", &clsid); hr = ::CoCreateInstance(clsid,
NULL,
CLSCTX_SERVER,
__uuidof(_Application),
(LPVOID*)&pWordApp); if(SUCCEEDED(hr))
{
COleVariant vOpt1(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt2(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt3(DISP_E_PARAMNOTFOUND, VT_ERROR),
vOpt4(DISP_E_PARAMNOTFOUND, VT_ERROR);
pWordDocs = pWordApp->GetDocuments();
pWordDoc = pWordDocs->Add();//<-----这句时出错
pWordSel = pWordApp->GetSelection(); pWordSel->MoveStart();
pWordSel->InsertAfter("Test Word Automation");
COleVariant varFN("E:\\ttt.doc");
pWordDoc->SaveAs(&varFN); pWordApp->Release();
pWordDocs->Release();
pWordDoc->Release();
pWordSel->Release();
// pWordRange->Release();
}
::CoUninitialize();
}
的返回值 是空的,或许是 GetDocuments()根本就是返回NULL?
pWordDocs不是NULL
但是其IDispatch的[0]--[2]都是错误的
不知道为什么会这样