编译时
#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':未声明的标识符
我错过任何包含。
答案 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_PTR
在basetsd.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。