Dim ResFile() As Byte
    Dim FileNo As Integer
    FileNo = FreeFile    ResFile = LoadResData(101, "CUSTOM")    Open "C:\x.dll" For Binary As FileNo
    Put FileNo , , ResFile
    Close FileNo 
   
这样写应该没问题吧?在向写入 C 盘 x.dll的时候,如果已经存在 x.dll,且 x.dll的文件比 资源文件 里的 大那么 写入后,x.dll 会出现多余部分···例如 C盘下存在1个 x.dll 有 123456 字节,如果我写入的是 123450 字节,那么,文件还是123456字节,会多出6个字节···难道Open写入的时候,不是全新重新文件的??只能先删除原来,再重新写入?

解决方案 »

  1.   

    Open "C:\x.dll" For Binary As FileNo
    你这句缺省是复写,你试试写成这样:
    Open "C:\x.dll" For Binary access write As FileNo
      

  2.   

    测试后一样,简单的写个 输出文本内容测试下,应该不是我写得不对,可能本来就是这样     Open "C:\x.txt" For Binary Access Write As #1
        Put #1, , "112233"
        Close #1如果c盘下已经有存在 x.txt,内容为 123456789那么写入 112233后,文本内容是 112233789写的时候是替换掉原来的,多余的则保留···
      

  3.   

    二进制方式始终是在原文件上进行修改写入,要新建写先用 kill 进行删除。