C++ 错误C2065:&x27;德沃德·普特';:未声明的标识符

C++ 错误C2065:&x27;德沃德·普特';:未声明的标识符,c++,windows,C++,Windows,编译时 #include "windows.h" #include "stdafx.h" #include "resource.h" #include "ProgressDlg.h" .... ... rItem.lParam = (LPARAM)(DWORD_PTR) m_lsStatusMessages.back().c_str(); 我收到错误C2065:“DWORD_PTR”:未声明的标识符 我是否缺少任何包含项。DWORD\u PTR在basetsd.h中

编译时

#include "windows.h"
#include "stdafx.h"
#include "resource.h"
#include "ProgressDlg.h"
    ....  
    ...  
rItem.lParam   = (LPARAM)(DWORD_PTR) m_lsStatusMessages.back().c_str();
我收到错误C2065:“DWORD_PTR”:未声明的标识符


我是否缺少任何包含项。

DWORD\u PTR
basetsd.h
中定义,但您应该包含
windows.h
如果我没记错,您至少需要一个定义项。
basetsd.h
包含如下内容

#if(_WIN32_WINNT >= 0x0400)

你可以试一试,然后加上

#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
在包含windows XP要求设置的
windows.h
之前

可以找到有关预处理器定义和windows头文件的概述

假设您在MSVC中实际使用了预编译头支持,这就是您的问题所在。您(尝试)在
stdafx.h
之前包含
windows.h
。在
#include“stdafx.h”
之前的每一行代码都被忽略。IIRC MSVC在某些版本中也给出了一些警告


要么将
#include“windows.h”
放入
stdafx.h
中,要么将其移到
下方#include“stdafx.h”

我的答案不是。我试过了,但没什么帮助,我用的是VC++6.0,如果它有帮助的话all@Subhen:VC6早于DWORD_PTR的引入。您必须手动更新平台SDK才能获得它。请看这里:
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#include "windows.h"
#include "stdafx.h"