两天来涉及灵魂最深处的思考让我彻底迷失了!!!!!!(对所有csdn的大虾的最深情呼唤!!!)

wwsatan 2002-01-11 07:16:56

一段关于webbrowser的代码
最开始,debug下有异常,但是运行正常,release下异常退出,无法执行。
考察了n(n>5)个关于webbrowser的sample,经过了涉及灵魂最深处的思考,发现如下:
凡是用CHtmlView来实现浏览功能的debug下都会产生异常,而直接用webbrowser这个activex控件来实现的,debug都不会产生异常。(以上结论,经过本机测试得出)

于是认为,问题的关键是要使用webbrowser Activex控件,
又是一番折腾,改造完成,F5调试运行。
这次debug下无任何异常,完全实现功能!
但是在release下居然有一个Access Violation!!!
............
就要打包勒!!!!!!
csdn的大虾们,为这个问题我问了3遍!
只有有人愿帮我,再来30遍我也愿意!!!
...全文
186 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwsatan 2002-01-13
  • 打赏
  • 举报
回复
搞定。给分!
Soft21 2002-01-13
  • 打赏
  • 举报
回复
大家好啊,不错!
wwsatan 2002-01-12
  • 打赏
  • 举报
回复
好像有点眉目了!!!
m_browser(webbrowser控件联系的变量)在执行这一句的时候出异常
m_browser.EnableWindow(FASLE);

Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
First-chance exception in UnisnetScanner.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.


是关于构造函数的,以前一直没执行过,这个浏览器控件如何初始化呢?
wwsatan 2002-01-12
  • 打赏
  • 举报
回复
是不是用到的com指针
在程序执行的最开始会被初始化?
masterz 2002-01-12
  • 打赏
  • 举报
回复
int* p;
*p=24;
这个代码运行时不一定出错,(有时debug没错,release出错了),而且出错的地址在mapfile中找不到,也许你的代码中也错误地使用了没有初始化的指针
wwsatan 2002-01-12
  • 打赏
  • 举报
回复
问题依旧!!!
各种方法都试过了
一点头绪都没有!

“我生成的map文件中,我出错的地址根本不包括在文件中所列的范围内“!!!!!
为什么呀???????????
wwsatan 2002-01-11
  • 打赏
  • 举报
回复
debug下不出异常,但是上面那段程序我也没有去捕捉异常,我准备试试看,不能放过每个细节,我现在用debug版的可执行文件打包勒,在一台裸机上运行正常,不知道会出什么问题
hujun614 2002-01-11
  • 打赏
  • 举报
回复
反正是程序有问题,这样的代码,别人怎好帮你,有些错误光看很难的,要构造相应的环境有时又很麻烦,所以我鼓励你好好睡一觉,再起来工作24小时,多调试,很可能会找出问题来的。
祝你好运。
masterz 2002-01-11
  • 打赏
  • 举报
回复
你上面那一段对webbrowser操作的代码好像没什么问题,我试过,debug version and release version OK
try
{
把你上面那一段对webbrowser操作的代码放在这个里面
...
}
catch(_com_error &e)
{
printf("Error:\n");
printf("Code = %08lx\n", e.Error());
printf("Message = %s\n", e.ErrorMessage());
printf("Source = %s\n", (LPCSTR) e.Source());
printf("Description = %s\n", (LPCSTR) e.Description());
用messagebox显示出错信息
}
也许错误不在这一段
wwsatan 2002-01-11
  • 打赏
  • 举报
回复
看了这篇文章
我生成的map文件中,我出错的地址根本不包括在文件中所列的范围内
郁闷!!
wwsatan 2002-01-11
  • 打赏
  • 举报
回复
还是一样出问题呀,我去看看文章
wwsatan 2002-01-11
  • 打赏
  • 举报
回复
masterz,还是一样的问题,我现在去看文章
masterz 2002-01-11
  • 打赏
  • 举报
回复
project->settings
link tab
category: General
select "Generate Mapfile"
rebuild, execute, and look at the following article in MSDN
HOWTO: Determine the Location of a Crash Q196755

wwsatan 2002-01-11
  • 打赏
  • 举报
回复
在initinstance中最开始用
if(!AfxOleInit())
{
AfxMessageBox("Ole 初始化失败!");
return FALSE;
}

然后是ado数据库的连接建立
然后是注册表的一些操作

webbrowser的操作代码就是把html字符串输入到body element中,如下:

CComPtr<IDispatch> pDocDispatch = m_browser.GetDocument();
if ( pDocDispatch.p != NULL )
{
CComQIPtr<IHTMLDocument2,&IID_IHTMLDocument2> pHTMLDocument2(pDocDispatch);
if ( pHTMLDocument2.p != NULL )
{
//CComQIPtr<IHTMLELement> *pBodyElement;
CComQIPtr<IHTMLElement,
&IID_IHTMLElement> pBodyElement;
HRESULT hr = pHTMLDocument2->get_body(&pBodyElement);
if ( SUCCEEDED(hr) )
{
CComBSTR pbBody = str.AllocSysString();
hr=pBodyElement->put_innerHTML(pbBody); //类似的还有put_innerTEXT
return TRUE;
}
else
return FALSE;
}
return FALSE;
}
return FALSE;

我的头文件是:

#include "MSHTML.H"
wwsatan 2002-01-11
  • 打赏
  • 举报
回复
楼上两位说的都试过了,一样
莫办呀????????
masterz 2002-01-11
  • 打赏
  • 举报
回复
哪里设置代码不优化?
project->settings dialog
c/c++ tab
category : optimization
choose disable
我程序中使用了ado访问access数据库
每次异常都是初始化的时候抛出!

把代码贴出来看看
wwsatan 2002-01-11
  • 打赏
  • 举报
回复
我程序中使用了ado访问access数据库
每次异常都是初始化的时候抛出!
他们有关系么?
btw:哪里设置代码不优化?
地平线 2002-01-11
  • 打赏
  • 举报
回复
我用过,没问题,
试试代码不优化
forsen 2002-01-11
  • 打赏
  • 举报
回复
也许是你软件有点问题吧,把DEBUG设置成static link library看看

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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