IHTMLDocument2 *pdoc;
_variant_t myvariant(RGB(100,12,244));
IDispatch *dispatch=webbrowse.get_Document();
dispatch->QueryInterface(IID_IHTMLDocument2,(void**)&pdoc);
pdoc->put_bgColor(myvariant);
BSTR p;
IHTMLElement *body;
/*pdoc->get_fileSize(&p);
CString string(p);
MessageBox(string,0,MB_OK);*/
pdoc->get_body(&body););
body->get_className(&p);//错误处
CString string1(p);
MessageBox(string1,0,MB_OK);
加上我用注解框起来的内容运行就正确。如果去掉(调试)就显示0x00413a93 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突 。请问为什么??
9 个解决方案
#1
BSTR 是一个指针,没有空间;在get_fileSize(&p)时,get_fileSize会自动分配空间,所以在get_className不会出错;而get_className自己不会主动分配空间。
#2
你是怎么知道会自动分配和不分配的,不会是自己定义的把?
#3
精典,学习,。。。。。
#4
gzgz!
#5
webbrowse.Navigate只是通知WEBBROWSE开始去打开文档,立即会返回的。
楼主可以在后面写一段消息循环等待。。。
类似这样。。
while(webBrowser->Busy)
Application->ProcessMessages();
呵呵。。当然,这是BCB代码,VC的写只是多几句而已。。。
楼主可以在后面写一段消息循环等待。。。
类似这样。。
while(webBrowser->Busy)
Application->ProcessMessages();
呵呵。。当然,这是BCB代码,VC的写只是多几句而已。。。
#6
使用了未初始化的指针
#7
mark
#8
内存紊乱,指针指向了非法地址。
#9
navigate 之后不能对document立刻处理, 不能做任何事情,因为这个时候它还没完成
要在DocumentComplete里做你想做的事情
要在DocumentComplete里做你想做的事情
#1
BSTR 是一个指针,没有空间;在get_fileSize(&p)时,get_fileSize会自动分配空间,所以在get_className不会出错;而get_className自己不会主动分配空间。
#2
你是怎么知道会自动分配和不分配的,不会是自己定义的把?
#3
精典,学习,。。。。。
#4
gzgz!
#5
webbrowse.Navigate只是通知WEBBROWSE开始去打开文档,立即会返回的。
楼主可以在后面写一段消息循环等待。。。
类似这样。。
while(webBrowser->Busy)
Application->ProcessMessages();
呵呵。。当然,这是BCB代码,VC的写只是多几句而已。。。
楼主可以在后面写一段消息循环等待。。。
类似这样。。
while(webBrowser->Busy)
Application->ProcessMessages();
呵呵。。当然,这是BCB代码,VC的写只是多几句而已。。。
#6
使用了未初始化的指针
#7
mark
#8
内存紊乱,指针指向了非法地址。
#9
navigate 之后不能对document立刻处理, 不能做任何事情,因为这个时候它还没完成
要在DocumentComplete里做你想做的事情
要在DocumentComplete里做你想做的事情