- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到以下错误:
error C2259: 'CDocument' : cannot instantiate abstract class
对于以下代码:
BOOL CVisuComm::OnOpenDoc()
{
CDocument myCDoc; //LINE AT WHICH THE ERROR OCCURS
CInterfaceDoc myCInterfaceDoc;
char tabchar[80]="c:/test111.dat";
CString myFilename;
myFilename="c:/test111.dat";
/*if(!myCDoc.OnOpenDocument(tabchar))
{
MessageBox("Erreur à l'ouverture..","OnOpenDocument",MB_OK);
return false;
}
else
{
MessageBox("Ouverture OK..","OnOpenDocument",MB_OK);
}*/
myCInterfaceDoc.OnOpenDocument("c:/test111.dat");
return true;
}
感谢任何帮助。
最佳答案
error C2259: 'CDocument' : cannot instantiate abstract class
编译器准确地告诉您您需要知道的内容。您不应该创建 CDocument
的具体实例 - 事实上您不能,正如您刚刚看到的那样。相反,to quote the MSDN :
To implement documents in a typical application, you must do the following:
- Derive a class from CDocument for each type of document.
你可能会问为什么。答案实际上也在 MSDN 上,尽管是以迂回的方式:
Override the CObject::Serialize member function in your document class to write and read the document's data to and from disk.
当调用周围应用程序代码的保存方法时,它们可以针对 CDocument*
接口(interface)而不是具体类编写。这允许他们对每种类型的文档执行完全相同的操作 - 即调用 serialize
方法。
关于c++ - 错误 C2259 : 'CDocument' : cannot instantiate abstract class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12039123/
如问题所述,我试图在 MFC MDI 应用程序中一次只允许一个文档。由于许多(不相关的)原因,我没有使用 SDI 文档模板。很多地方评论说这样做,但我不知道如何做。最接近的是此链接中的建议:http:
我收到以下错误: error C2259: 'CDocument' : cannot instantiate abstract class 对于以下代码: BOOL CVisuComm::OnOpen
在我的 MFC SDI 应用程序中,我试图覆盖 CDocument::DoSave 以保存我的文档。我正在使用第三方组件 (TxTextControl) 来构建文本控件。当我保存文档时,文件已创建,但
我刚开始看一个新项目的MFC代码,我被分配到并且之前没有在MFC中做过太多编码。我可以看到 MFC 文档 View 架构基本上分配了所有显示相关任务以查看,Frame 处理与窗口的通信,以及文档保存所
当我在 Windows XP 中使用 'eererr.hpr' 调用 CDocument::SetPathName 时,它会用值 'C:\Program Files 更新成员变量 m_strPathN
我有一个相当简单的 MFC 应用程序,它只定义了自己的 CDocument、CView 和 CFrameWnd 子类,并通过CSingleDocTemplate 在 View 的树中显示文档的只读内容
我是一名优秀的程序员,十分优秀!