最近在用WININET编程,遇到一个很郁闷的问题:我把下载的代码放到主线程中的时候,一切正常,但是把它放到子线程中的时候,运行时就会出现exception error.具体情况是:在子线程中调用CHttpFile::SendRequest()的时候,如果正确返回,就没有任何问题,但是如果返回不正确的话,它就会跳出Exception Error的对话框,程序强行终止;而如果是在主线程中调用的话,它就会转到异常处理,然后程序继续正常运行。
    有谁知道这是什么原因吗?项目做不下去了,急~~~~

解决方案 »

  1.   

    注意以下是什么exception吧应该不会是同一个的
      

  2.   

    当然不是同一个,跟踪到SendRequest()函数的内部,到AfxThrowInternetExption()中的THROW(pException)时就会提示出现“Microsoft C++ Exception”,而如果在主线程中调用,则一切正常。无奈中,有人遇到过这中情况吗?
      

  3.   

    ...Microsoft C++ Exception...
      

  4.   

    http://msdn2.microsoft.com/en-us/library/2xfbsd16(VS.80).aspx
    catch CInternetException
      

  5.   

    我的程序还处于调试阶段,所以只开了一个子线程,似乎和同步问题无关吧?我后来不用MFC封装的类,而直接调用API函数,就没有再出现问题了~~~~~
    越来越想不明白
      

  6.   

     点量Http、FTP多线程断点续传下载组件(下载DLL)的开发目的是让用户可以无需关心Http/FTP协议的具体细节,只需要几十行甚至几行代码,便可以实现一个功能完善的Http/FTP下载软件。点量Http/FTP下载组件(DLL)支持多线程、断点续传、显示详细下载过程、自动查找镜像网址、支持代理传输等完善的功能。     点量Http、FTP下载内核源码使用高效的c++代码编写,提供标准的动态链接库(DLL),可供C/C++、Delphi、C#、Java、VB等语言和各常用开发环境调用,让您完全像调用系统API一样的调用。     点量Http/FTP组件的功能简介:标准Http和FTP下载支持:完全标准的Http和FTP协议支持,内部通过网址自动区分是Http还是FTP下载。 
    极速下载(2.0以后版本):超越国内绝大多数下载软件的下载速度。新版内核在2M ADSL的环境下下载,有些文件的速度可以达到1400K字节/秒以上,超过了带宽的极限。下载速度可以用极速形容。 
    多线程传输:可以将文件自动分块,并采用多线程下载。并可自由设置线程数目。 
    断点续传:点量Http/FTP有优秀的断点续传支持,每次启动自动从上次下载的位置开始,不需要重复下载。 
    提供详细的下载详情接口(2.0以后版本):可以看到整个下载过程的步骤,比如开启了多少线程、服务器的应答过程、错误信息等。 
    支持多种高级设置:设置线程数目、磁盘缓存大小、搜索镜像服务器的详细参数设置、下载文件完成后同步文件为服务器上的文件时间、下载过程中可以自定义文件临时后缀、未完成的文件设为隐藏属性。 
    支持磁盘缓存:点量Http/FTP下载DLL支持设置磁盘缓存,减少对磁盘的读写,并提升下载速度。 
    支持设置Refer:点量Http/FTP下载组件支持设置下载时的Refer,以便可以绕过一些防盗链的网站,直接下载内容。 
    限速功能:点量Http/FTP下载组件可方便的设置下载限速。 
    多种磁盘分配方式:点量Http/FTP下载组件支持预分配和边下载边分配两种磁盘方式,满足多种下载需求。 
    自动搜索镜像加速:点量Http/FTP内置了镜像搜索功能,在下载文件的同时,会自动搜索哪些其它网站还有这个文件,自动从其它网址下载加速。 
    可提供源码:支付一定的费用,便可以获得全部的点量Http/FTP下载组件的源代码,免除您的所有后顾之忧。 
    良好的服务:作为点量软件旗下的软件,可享受到点量软件的优秀服务,我们的服务让您如同拥有一个称心的专业员工。点量Http/FTP 下载组件可以适用于任何Http和FTP下载的领域,让您可以在1天内完成一个完整的Http下载软件的全部功能。比如,您可以用于产品的升级、文件的下载和传输等。 
    点量Http/FTP内核可以为您带来:
    1、大大节省您的开发成本:了解Http和FTP的协议,再去编码、测试,即使对于一个非常有经验的开发人员来说,也需要较长期的时间,此间耗费的人力资源成本和管理成本可谓不少。而使用点量Http/FTP,您就不需要从制造轮子开始制造您的汽车,将注意力集中于车的设计而不是基础设备的建设。何况我们的产品性能是如此优越!2、强有力的技术支持:作者长期从事下载技术的研发,所提供的技术支持相当于您雇佣了一位具有丰富经验,无需从头学习的开发人员,可以在您的系统建设过程中为您提供整体系统架设的意见。如果您是个人作为非商业目的使用,您可以自由、免费的使用点量Http/FTP下载组件内核库和演示程序,也期待收到您反馈的意见和建议;如果您是商业使用,那么您需要联系作者申请产品的商业授权。-----------------------------------------------------------------------------------------------------------------------
    点量软件官方地址:http://www.dolit.cn          http://hi.baidu.com/dlbtsoft   点量Http/FTP内核SDK下载地址:http://hi.baidu.com/dlbtsoft/blog/item/09fa66d15a258d89a1ec9c6f.html。