MFC:throw";访问违规”;何时执行;IHTMLTable::insertRow“;
我想在CDHtmlDialog中创建行和单元格。下面是我写的代码:MFC:throw";访问违规”;何时执行;IHTMLTable::insertRow“;,mfc,Mfc,我想在CDHtmlDialog中创建行和单元格。下面是我写的代码: void CHtmlTableTestDlg::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl) { IHTMLTable* table; this->GetElement(_T("Table"),(IHTMLElement**)&table); IDispatch* dispatch; table->insertRow(
void CHtmlTableTestDlg::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{
IHTMLTable* table;
this->GetElement(_T("Table"),(IHTMLElement**)&table);
IDispatch* dispatch;
table->insertRow(1,&dispatch);
}
以下是表格的html:
<table id="Table">
<tr>
<th>Column</th>
</tr>
</table>
纵队
我调试了项目,在执行“table->insertRow(1,&dispatch)”时出现以下错误
HtmlTableTest.exe中0x3fa53780处的未处理异常:0xC0000005:访问冲突写入位置0x00000001
我已上载我的测试项目:
如何基于CDHtmlDialog创建行和单元格
感谢您提前提供的帮助。您不能在
IHTMLElement
和IHTMLTable
之间进行转换。试试这个:
IHTMLElement* element;
if(S_OK == this->GetElement(_T("Table"),(IHTMLElement**)&element)) {
IHTMLTable* table;
if(S_OK == element->QueryInterface(&table)) {
IDispatch* dispatch;
table->insertRow(1,&dispatch);
table->Release();
table = NULL;
}
}
也值得一读。你检查表是否是有效的指针?对不起,我是C++的初学者。如何检查指针是否有效?我用“如果”来检查和通过
code
if(table)this->MessageBox(L“table是有效指针!”);我已经将iHTMLMeject对象转换为C++项目中的IHTMLTLE对象成功,所以我认为HTML对象可以以C++项目中相同的方式转换。