【发布时间】:2014-11-16 21:46:52
【问题描述】:
我第一次使用 c++ (VS 2012) 制作简单的用户界面。我让我的应用程序运行,但我遇到的问题是向我的编辑框添加默认值。显然,这样做的唯一方法是将一个类添加到主窗口。代码很容易理解,但我明白了
致命错误 C1189:#error:使用 /MD[d](CRT dll 版本)构建 MFC 应用程序需要 MFC 共享 dll 版本。请#define _AFXDLL 或不要使用/MD[d]
错误。 如果我添加 #define _AFXDLL 我会收到这些错误。
error C2084: function 'CRuntimeClass *CMyDialog::_GetBaseClass(void)' already has a body
error C2374: 'classCMyDialog' : redefinition; multiple initialization
error C2084: function 'CRuntimeClass *CMyDialog::GetThisClass(void)' already has a body
error C2084: function 'CRuntimeClass *CMyDialog::GetRuntimeClass(void) const' already has a body
error C2084: function 'CMyDialog::CMyDialog(CWnd *)' already has a body
error C2084: function 'CMyDialog::~CMyDialog(void)' already has a body
error C2084: function 'void CMyDialog::DoDataExchange(CDataExchange *)' already has a body
error C2084: function 'const AFX_MSGMAP *CMyDialog::GetMessageMap(void) const' already has a body
error C2084: function 'const AFX_MSGMAP *CMyDialog::GetThisMessageMap(void)' already has a body
所以我有点困惑我要在这里做什么。我在用户界面编程方面没有太多经验,所以这可能只是一个学习问题。
【问题讨论】:
-
发布一些代码。随机猜测 - 您在 .h 文件中定义了所有这些函数
-
我不明白,我没有创建 IDE 所做的代码。由于右键单击 IDE 中的主对话框窗口并单击添加类,所有这些都会发生。它制作了一个新的 H 和 CPP 文件。我将它们命名为 myDialog,它是 CDialog 的基类。它添加了包含(#include "afxdialogex.h"),因此会生成上述错误。