错误C2065:'DWORD_PTR':未声明的标识符

时间:2010-09-23 11:57:34

标签: 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':未声明的标识符

我错过任何包含。

3 个答案:

答案 0 :(得分:2)

#include "windows.h"
#include "stdafx.h"

假设您实际使用MSVC中的预编译头支持,这是您的问题。您(尝试)在windows.h之前加入stdafx.h#include "stdafx.h"之前的每行代码都会被忽略。 IIRC MSVC在某些版本中也对此提出了一些警告。

#include "windows.h"放入stdafx.h或将其移至#include "stdafx.h"以下。

答案 1 :(得分:1)

DWORD_PTRbasetsd.h中定义,但您应该包含windows.h

答案 2 :(得分:0)

如果我没记错的话,至少需要一个定义。 basetsd.h包含类似

的内容
#if(_WIN32_WINNT >= 0x0400)

#if(WINVER >= 0x0502)

你可以试一试并添加

#define _WIN32_WINNT 0x0501
#define WINVER 0x0501

包含windows.h之前的Windows XP要求设置。

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