注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

WEB调用OCX之四JSP调用的错误  

2015-01-07 10:57:19|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

WEB调用OCX之四JSP调用的错误

在实际的应用中出现了两个错误:

1、从绑定事件中回传一个参数时,程序崩溃。

2、在应用完成后退出时,程序崩溃。

第一个错误:

这个现象有一些奇特,因为一般来说,传递参数时,函数会自动处理参数的类型,如果不对的话,会在编译期报错,如果编译期没有问题的话,如果在实际运行中,不传参数,也不使用这个参数,理论上是不应该有问题的。可是这里就出现问题了,报得错误如下:

void EventEnroll(LPCTSTR codeListL, LPCTSTR codeListR, LONG result)

{

FireEvent(eventidEventEnroll, EVENT_PARAM(VTS_BSTR VTS_BSTR VTS_I4), codeListL, codeListR, result);

}

这个函数里参数无法分配。

很奇怪,不过很快就想到是只传一个参数的问题。后来经过测试果然如此,然后就把另外一个参数直接给了一个空值,解决了这个问题。

可是又出现了一个错误,那就是传递的参数都是乱码。这时候想起来做这个程序时就提防着这个,因为都是局部参数,所以后面加了一个对话框提示,因此避免了这个现象,如今客户提出了把对话框去除。所以这个现象便出现了,只好把临时的局部变量改成了类的成员变量。这样就OK了。

第二个错误:

这个就有些个麻烦了,在HTML的测试程序里是没有问题的,但在JSP里就不行。当初考虑可能是在OnDestroy中可能有一些内存先于线程退出,可是后来加了延时,甚至很长的延时都没有解决问题。

WEB调用OCX之四JSP调用的错误 - 还东国 - 还东国的博客

 

直到把图片拷过来,然后查看了一下这个对应的地方的代码:

_AFXWIN_INLINE void CWnd::Invalidate(BOOL bErase)

{ ASSERT(::IsWindow(m_hWnd)); ::InvalidateRect(m_hWnd, NULL, bErase); }

才恍然大悟,原来是绘画程序在DEBUG版本中有不同,原来的程序是在一个PIC控件上画,这里为了省事,直接在UI上画。那这个只是表明无效,所以理论上在Release版本上不应该有问题,重新打了一个Release的包,就OK了。

另外,在笔记本上干活发现,如果在一个OCX工程上编译了Debug后再编译Release版本不可以,报没有权限,改了半天注册表不行,后来在配置里改程序工程的目标名字,没用,还是那个目标名字,但是却可以编译了。不知道什么原因。

好好学习,天天进步。

  评论这张
 
阅读(344)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017