本帖最后由 VisualEleven 于 2011-03-04 08:36:10 编辑

解决方案 »

  1.   

    这个你Debug下调试一下,看看函数执行的返回值,是成功或者是失败了,@err,hr看看GetLastError的值,失败的原因是什么
      

  2.   

    要用二进制方式读取,另外不要使用CString保存
      

  3.   

    部长好, 看代码2个文件操作都是一样的,只是顺序不同,可以调试下看哪里跑偏了。也可以用工具比较下2个生成的DOC文件看哪里不一样再分析下。
      

  4.   

    word文件最好用二进制传输,同时检查一下是否传送前就损坏了word文件
      

  5.   

    用二进制传输是指在文件打开方式上添加CFile::typeBinary吗?但这样还是不行…我感觉是CString类的问题,为什么byte类型可以直接赋给CString类,而反过来却不行呢,如果用char类型是可以的,但CArchive串行化不支持char类型的数组,也就是》操作符没有重载char类型数组的函数,无奈之下选了CString类作为保存变量,没想到出现这样的错…如果此路不通,应该用什么类型变量作为保存变量呢?在上面提到的书里面是用CString类型作为存储变量的,而且CString在vc6环境下默认的字符集设置是多字节的…总之问题还是没有解决,困扰好多天了,望高人指教,有演示代码更好了!
      

  6.   

    word文件有格式码;也就是说它不是纯文本的;不要使用CString;
      

  7.   

    不要使用CString,因为CString遇到\0就会截断的,你要用BYTE*,unsigned char*,用二进制方式读取文件
      

  8.   

    恩,但是CArchive操作符不支持<<或>>不支持byte*或char*,只支持单字节,与CSocketFile联用,单字节传输也太慢了吧?
      

  9.   

    A CSocketFile can also be used as a (limited) file without a CArchive object. By default, the CSocketFile constructor’s bArchiveCompatible parameter is TRUE. This specifies that the file object is for use with an archive. To use the file object without an archive, pass FALSE in the bArchiveCompatible parameter.
      

  10.   

    初学socket,不要用MFC封装的socket类,先从socket api学.后来再看mfc的,才能理解mfc对socket封装原理.
      

  11.   

    看MSDN还是要仔细点;问题肯定能解决的