本帖最后由 xiaoxixp 于 2010-08-26 18:04:44 编辑

解决方案 »

  1.   

    1. pThis->iBrowser->OpenURL();这个括号里不用写网址啥的?
    2. 这个函数中是否进行了异常处理。一般网络访问是很容易出现异常的。
    如果出现异常,而你没有捕获,自然就退出了。
      

  2.   

    试改成:try {
        pThis->iBrowser->OpenURL();//断点到这一句位置都正常
    }
    catch (...)
    {}后,看看是否还退出。
      

  3.   

    如果是VC,最好是改成VC风格的异常处理:
    __try {
      pThis->iBrowser->OpenURL();//断点到这一句位置都正常
    }
    __finally
    {}
      

  4.   


    你好,首先谢谢你这么快回复我。因为我已经在OpenURL()这个函数的第一句设置了断点,但是程序根本就没有过去,所以应该不是这个函数的里面出了什么问题,我已经加了try finally ,但是还是一样的现象
      

  5.   

    还有就是在DEBUG的时候,那个显示线程和堆栈帧的地方会变成红色,不知道是什么意思
      

  6.   

    看样子问题不像是,OPenUrl造成的,你说的是一种假象吧。在关键点加log输出试试吧
      

  7.   

    反正就是一到那个点,一调用OpenURL()函数就自动退出了,线程退了连带主程序也退了,而在OpenURL函数里面第一行设置的断点根本没有执行到,实在是搞不懂啊,哎,没有C++的开发经验
      

  8.   

    不说了么,既然不是这块异常退出,那就打印log 试试,log与语言无关。
      

  9.   

    你说的log是指?  我只看到控制台有一些输出
      

  10.   

    可不可以把RateDownloader整个类贴出来? 
      

  11.   

    线程前面加
    CoInitClient()
    AfxInitSocket()
    WSAInit()
    之类的初始化函数-----我记不住这些函数名称,所以很可能写错了,但是你要领会精神
    vc的线程环境很单纯,只要涉及到套接字、网络操作,不重新初始化是不行的
      

  12.   

    DWORD WINAPI RateDownloader::RateDownloadThreadProc(void* param)
    {////加到这个地方
    CoInitInstance(); //?对吗?就算有人告诉你正确的函数,你也要把分加给我,如果对了的话。
    AfxInitSocket();  // 对吗?
    HRESULT hr = S_OK;
    RateDownloader* pThis = (RateDownloader*)param;