编译器没造反。这是运行错误,编译器是无辜的。
第一种情况,你确信你的字符变量赋值正确?比如没有写成m_strA = "c:\a.gif"?可以用strcmp(m_strA, "c:\\a.gif")比较一下;
第二种情况,如果a.gif不在程序的当前目录下,CopyFile自然找不到,返回FALSE也不奇怪。你可以先调用SetCurrentDirectroy("C:\\"),然后在试试。