错误 C2065:“DWORD_PTR”:未声明的标识符
Posted
技术标签:
【中文标题】错误 C2065:“DWORD_PTR”:未声明的标识符【英文标题】:error C2065: 'DWORD_PTR' : undeclared identifier 【发布时间】:2011-04-16 05:44:27 【问题描述】:编译时
#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' : undeclared identifier
我是否缺少任何包含。
【问题讨论】:
social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/… 【参考方案1】:#include "windows.h"
#include "stdafx.h"
假设您实际使用 MSVC 中的预编译头文件支持,这就是您的问题。您(尝试)在stdafx.h
之前包含windows.h
。 之前 #include "stdafx.h"
的每一行代码都会被忽略。 IIRC MSVC 在某些版本中也给出了一些警告。
将#include "windows.h"
放入stdafx.h
或将其移至#include "stdafx.h"
下方。
【讨论】:
【参考方案2】:DWORD_PTR
在basetsd.h
中定义,但您应该包含windows.h
【讨论】:
我不是答案。 social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/…【参考方案3】:如果我没记错的话,你至少需要一个定义。 basetsd.h
包含类似
#if(_WIN32_WINNT >= 0x0400)
或
#if(WINVER >= 0x0502)
你可以试一试并添加
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
在您添加 windows.h
之前用于 Windows XP 要求设置。
可以在 here找到预处理器定义和windows头文件的概述。
【讨论】:
试过了,但有帮助,我使用的是 VC++ 6.0,如果有帮助的话 @Subhen:VC6 早于 DWORD_PTR 的引入。您必须手动更新平台 SDK 才能获得它。见这里:***.com/questions/2723284以上是关于错误 C2065:“DWORD_PTR”:未声明的标识符的主要内容,如果未能解决你的问题,请参考以下文章
“错误 C2065:'ON_WM_THEMECHANGED':未声明的标识符”[关闭]
错误 C2065:“IOCTL_NDISUIO_OPEN_DEVICE”:未声明的标识符
错误 C2065:“MIIM_STRING”:未声明的标识符
错误>fun.cpp(29):错误C2065:'Llist_url':未声明的标识符1>fun.cpp(30):[关闭]