这是怎么回事?在运行时,
有时候会跳出这样的窗口,然后程序会终止,不知道是怎么回事,没有办法调试,有没有人知道是怎么回事呢?

解决方案 »

  1.   

    我也遇到过,可能的原因是1.发送方发送过快,接收方接收文件名时多接收了数据
    2.同名文件问题:两个发送方发送的文件名一样,接收方同时生成了两个文件名一样的文件。或者是接收方一前一后把两个发送方发送的同名文件写到一个文件中,前面的写完然后关闭,后面的再写就会出错。
    当时遇见这个问题后我也只是简单的分析了一下,可能分析的不对,请高人指点。
    我解决的办法是:1.每次发送文件属性时用SLEEP()2.接收方生成文件时判断是否有同名的,若有,则重命名。
      

  2.   

    我测试过在播放 a.mp3 文件的时候,我去改变它的名字,这时候,也会弹出共享冲突的对话框
      

  3.   

    void CMyAsyncSocket::OnReceive(int nErrorCode) 
    { m_file.Open(m_cstrFileName, CFile::modeWrite | CFile::typeBinary);}这是我的代码。
    我没有使用CFile::shareExclusive,在这种情况下,默认的是什么模式呢?
      

  4.   

    当一个文件正在被独占式打开时,其他程序要打开这个文件便会出现共享冲突的问题。
    你设置一个互斥锁吧,参见CMutex;
      

  5.   

    问题解决了!我总结一下:1 win98ddk2  bluejoe2000他们两位的方法是我使用的方法。在OnSend()中应该:OnSend()
    {
      CMutex  mutex(FALSE, NULL, NULL);
      mutex.Lock(); 
      /*
      发送文件
      */
      mutex.Unlock(); 
    }或者是类似的同步。谢谢各位的参与,希望这个问题对大家有好处。结帐