为什么我自己生成的程序运行有问题而现成提供的程序没问题?(windows C)


这是一个示例程序,是教学光盘中的内容,光盘内提供有源代码文件以及现成的生成好的可执行程序,我自己把源代码编译后发现生成的可执行文件与现成的不同,而且功能上也不同,因为现成的运行没问题,而我自己生成的程序就会出错.我不知道是我的问题还是光盘文件的问题,总之源代码如下:


 /* Chapter 1. Basic cp file copy program.
    Windows Implementation using CopyFile for convenience and possible performance. */
/* cp file1 file2: Copy file1 to file2. */

#include <windows.h>
#include <stdio.h>
#define BUF_SIZE 256

int main (int argc, LPTSTR argv [])
{
    if (argc != 3) {
        fprintf (stderr, "Usage: cp file1 file2\n");
        return 1;
    }
    if (!CopyFile (argv[1], argv[2], FALSE)) {
        fprintf (stderr, "CopyFile Error: %x\n", GetLastError ());
        return 2;
    }
    return 0;
}

在cmd中这样执行:


 cpCF file1 file2

现成的程序能完美复制file1,而我编译的就会出现如下错误:


 CopyFile Error: 2

大家帮忙看下怎么回事
OS:win7-sp1 64 bit
用的是vc++2010直接编译源代码,而光盘提供的是vc++2008生成的64位程序
另外请问如何用vc++生成32位和64位程序?我是直接按按钮生成程序的

教学光盘文件:
http://www.jmhartsoftware.com/WSP4_Examples.zip

源代码是chapter1中的cpCF.c,现成程序是run8_64中的cpCF.exe,现成的vc项目在project2008目录中

如果嫌烦的话你们直接把上面的源代码做成程序看看和我的结果一样吗?

c windows开发 vc++

人称触女收割机 10 years ago

教学光盘

manaka answered 10 years ago

加编译选项-m32生成32位程序

拷贝代码编译运行了一下,没有问题啊

Win8.1 x64 VS2013

kasim11 answered 10 years ago

https://www.google.com/?gws_rd=ssl#newwindow=1&q=copyfile+error+co...

╮(╯▽╰)╭ 为啥不自己搜索一下呢

sykid answered 10 years ago

Your Answer