用VS2010的Dialog资源添加类,提示错误。

1、新建一个Dialog资源,ID标示为:IDD_DIALOG1。
2、双击“Dialog资源”对话框,为“资源”创建类“CTestDlg”,基类为“CDialog”。
3、“TestDlg.h”文件。
#pragma once


// CTestDlg dialog

class CTestDlg : public CDialog
{
DECLARE_DYNAMIC(CTestDlg)

public:
CTestDlg(CWnd* pParent = NULL); // standard constructor
virtual ~CTestDlg();

// Dialog Data
enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???


protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

DECLARE_MESSAGE_MAP()
};


afxver_.h中提示错误:
/
// Special configurations

// _AFXEXT implies _AFXDLL
#if defined(_AFXEXT) && !defined(_AFXDLL)
#define _AFXDLL
#endif

#if defined(_AFXDLL) && !defined(_DLL)
#error Please use the /MD switch for _AFXDLL builds

错误信息: 2 IntelliSense: #error directive: Please use the /MD switch for _AFXDLL builds c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h 81 3

问题二:为什么会出现这样的错误呢???好像经常会出现这样的错误,但是并不影响程序运行,不明白啊???

#endif

/

 

enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???
==>include "resource.h" 即可。

#error Please use the /MD switch for _AFXDLL builds

错误信息: 2 IntelliSense: #error directive: Please use the /MD switch for _AFXDLL builds c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h 81 3  

问题二:为什么会出现这样的错误呢???好像经常会出现这样的错误,但是并不影响程序运行,不明白啊???
====================
属性 => C/C++ => Code Generation更改为/MT(MTDebug) or /MD(MDDebug)
这和你选择的Use of MFC library相关. (General => Use of MFC)

#2楼 得分:0回复于:2011-11-25 09:40:05

引用 1 楼 yuucyf 的回复:

enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???
==>include "resource.h" 即可。

#error Please use the /MD switch for _AFXDLL builds

错误信息: 2 IntelliSen……

附加问题一:很奇怪,第一个错误不影响运行,“IDD_DIALOG1”提示“未定义”这个错误不提示了,但是什么 都没有改啊。是不是VS2010智能感知的问题???

附加问题二:属性 => C/C++ => Code Generation更改为/MT(MTDebug) or /MD(MDDebug)
这和你选择的Use of MFC library相关. (General => Use of MFC)

这样操作的作用是什么???

#3楼 得分:0回复于:2011-11-25 09:47:27
引用 1 楼 yuucyf 的回复:

enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???
==>include "resource.h" 即可。

#error Please use the /MD switch for _AFXDLL builds

错误信息: 2 IntelliSen……

Code Generation下的“RunTime Library”改为了“Multi-threaded DLL (/MD)”
错误:“2 IntelliSense: #error directive: Please use the /MD switch for _AFXDLL builds c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h 81 3 ”

没了,但是出现了警告:
Warning 1 warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library C:\Users\Administrator.PC-20110905ONBV\Desktop\Demo\VC\Dialog\Mybole\Mybole\LINK Mybole

原来默认的是“Multi-threaded Debug DLL (/MDd)”


#4楼 得分:5回复于:2011-11-25 09:57:47
引用 2 楼 starryplayer 的回复:
引用 1 楼 yuucyf 的回复:

enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???
==>include "resource.h" 即可。

#error Please use the /MD switch for _AFXDLL builds
……

主要是动态还是静态连接运行库,MFC库。不同的连接方式

#5楼 得分:0回复于:2011-11-25 11:27:19
引用 4 楼 oyljerry 的回复:

引用 2 楼 starryplayer 的回复:
引用 1 楼 yuucyf 的回复:

enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???
==>include "resource.h" 即可。

#error Please use the /MD……

有相关的资料吗???

#6楼 得分:5回复于:2011-11-25 11:28:13
引用 5 楼 starryplayer 的回复:
引用 4 楼 oyljerry 的回复:

引用 2 楼 starryplayer 的回复:
引用 1 楼 yuucyf 的回复:

enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???
==>include "resource.h" 即可。

#e……

MSDN

#7楼 得分:0回复于:2011-11-26 12:18:43
MSDN,不知道“错误类型”,不知道怎么回事,怎么MSDN呢???

#8楼 得分:0回复于:2011-11-26 16:51:05
 

该回复于2011-11-28 09:21:35被版主删除


#9楼 得分:0回复于:2011-11-28 10:17:59
引用 4 楼 oyljerry 的回复:

引用 2 楼 starryplayer 的回复:
引用 1 楼 yuucyf 的回复:

enum { IDD = IDD_DIALOG1 };
问题一:“IDD_DIALOG1”提示“未定义”错误,这是怎么回事???“IDD_DIALOG1”是资源ID,怎么会未定义???
==>include "resource.h" 即可。

#error Please use the /MD……


能不能追加者问一点问题:
问题一:VC++解决方案—>右键“属性”—>“C/C++”—>“Code Generation”这是设置什么的呢???

问题二:这个选项卡下“Runtime Library”的“Multi-threaded (/MT)”、“Multi-threaded Debug(/MTd)”、“Multi-threaded DLL (/MD)”、“Multi-threaded Debug DLL (/MDd)”这四项分别是什么意思呢???

问题三:“Configuration:”下有“Active(Debug)、Debug、Release、AllConfigurations”四项,分别是什么意思呢???

问题四:“Platform:”下有“Active(Win32)、Win32”两项,又是什么意思???

#10楼 得分:10回复于:2011-11-28 11:22:04
MT 多线程,MTD 多线程调试
MD 多线程dll MDd 多线程调试dll