You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中MFC代码触发Error C2280错误的解决求助

解决CFile编译错误C2280的方案

错误原因

CFile类的拷贝构造函数CFile(const CFile&)被显式删除了——MFC设计这类资源管理类时,禁止对象拷贝,避免资源重复释放或管理混乱。你写的CFile testFile = CFile(_T("TEST STRING"), CFile::modeCreate);属于拷贝初始化,编译器会尝试调用拷贝构造函数,因此触发C2280错误。

修复方法

方法1:使用直接初始化(推荐)

去掉等号,直接调用构造函数初始化对象:

CFile testFile(_T("TEST STRING"), CFile::modeCreate);

这是MFC中创建CFile对象的标准写法,不会触发拷贝构造调用。

额外注意事项

  • 确保文件名_T("TEST STRING")是合法路径,仅写文件名会在当前进程工作目录创建文件;
  • CFile构造失败时会抛出CFileException异常,建议用try-catch块捕获处理:
try
{
    CFile testFile(_T("TEST STRING"), CFile::modeCreate);
    // 后续文件操作
}
catch (CFileException* e)
{
    // 处理异常,比如输出错误信息
    TCHAR szErr[1024];
    e->GetErrorMessage(szErr, 1024);
    AfxMessageBox(szErr);
    e->Delete();
}

内容的提问来源于stack exchange,提问作者Salvatore Ansani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:05:20