if (CopyFile(FileDirSystem,FileName,FALSE)) 
以上语句老是出错,出错信息是“拒绝访问”,
是什么引起的?
是因为正在运行的.exe程序不能被复制吗?还是系统目录(c:/windows/system32/)下面的文件不能被访问啊?

解决方案 »

  1.   

    GetLastError(),然后注意路径中的\和\\
      

  2.   

    LPVOID lpMsgBuf; 
    FormatMessage( 
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM | 
        FORMAT_MESSAGE_IGNORE_INSERTS, 
        NULL, 
        GetLastError(), 
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR) &lpMsgBuf, 
        0, 
        NULL 
        ); 
    MessageBox(  (LPCTSTR)lpMsgBuf); 
    LocalFree( lpMsgBuf );打印出来错误信息看看
      

  3.   

    If the function succeeds, the return value is nonzero.
    If the function fails, the return value is zero. To get extended error information, call GetLastError.
      

  4.   

    在Win7下c:/windows/system32的文件不能复制,需要设置管理员权限才可以。
      

  5.   

    你copy的是什么文件,还有看你的文件的属性
      

  6.   

    之前做的项目也是要拷贝系统目录下的文件,通过设置app.manifest这个文件属性就可以了。
    请参考http://www.cnblogs.com/zyizyizyi/archive/2013/01/14/2859321.html