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"