vs2010新建立的mfc工程编译就出错error C2065: “DWORD_PTR”: 未声明的标识符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2010新建立的mfc工程编译就出错error C2065: “DWORD_PTR”: 未声明的标识符相关的知识,希望对你有一定的参考价值。

下面是报错内容:
> stdafx.cpp
1>
1> NOTE: WINVER has been defined as 0x0500 or greater which enables
1> Windows NT 5.0 and Windows 98 features. When these headers were released,
1> Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.
1>
1> For this release when WINVER is defined as 0x0500 or greater, you can only
1> build beta or test applications. To build a retail application,
1> set WINVER to 0x0400 or visit http://www.microsoft.com/msdn/sdk
1> to see if retail Windows NT 5.0 or Windows 98 headers are available.
1>
1> See the SDK release notes for more information.
1>
1>d:\microsoft visual studio 10.0\vc\atlmfc\include\afxv_w32.h(204): error C2065: “DWORD_PTR”: 未声明的标识符
1>d:\microsoft visual studio 10.0\vc\atlmfc\include\afxv_w32.h(204): error C2143: 语法错误 : 缺少“;”(在“GetWindowThreadProcessId”的前面)
1>d:\microsoft visual studio 10.0\vc\atlmfc\include\atlconv.h(91): error C2061: 语法错误: 标识符“LONG_PTR”
定为 int。注意: C++ 不支持默认 int

1>d:\microsoft visual studio 10.0\vc\atlmfc\include\atldebugapi.h(34): error C2146: 语法错误: 缺少“)”(在标识符“dwProcess”的前面)
忽略数据上的修饰符

1>d:\microsoft visual studio 10.0\vc\atlmfc\include\atldebugapi.h(35): error C2182: “AtlTraceSnapshotProcess”: 非法使用“void”类型
1>d:\microsoft visual studio 10.0\vc\atlmfc\include\atldebugapi.h(35): error C2059: 语法错误:“)”

参考技术A #define DWORD_PTR (DWORD *)追问

这个方法我用过了,不行。我电脑上同时还安装了vc6.0 ,很可能他们混在一起了,现在我全部卸载掉,重新安装2010,不知道可不可以。

追答

不会用C#了吧,C#里面是木有指针的。看一下吧

参考技术B 直接装个VS2013试试,应该是某些MFC的文件或者是DLL冲突了。追问

我卸载了vc6.0和卸载重新安装了vs2010还是不行啊。

追答

你是什么操作系统?怎么连一些MFC常用的函数名都找不到了?

你看看是不是在stdafx.h里有定义Windows的版本?像下面这种。

// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//  are changed infrequently
//

#pragma once

// Change these values to use different versions
#define WINVER 0x0500
#define _WIN32_WINNT 0x0501
#define _WIN32_IE 0x0501
#define _RICHEDIT_VER 0x0200

追问

(为了使用openssl我修改对c/c++目录进行了一些库的添加,不知道有不有影响啊,跪求帮忙解决啊,如果能帮我解决我会多给分。)我之前没有进行过mfc的开发,写的都说控制台程序。

追答

给你个我的MFC工程,你打开试试能不能编译,如果可以的话,那你就对比下哪里不同。如果不行,就再找别的办法。

追问

环境是:win7(64位)+ vs 2010 + openssl
我在stdafx.h 添加了:
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
但还是报一样的错。

追答

装个VS2012或者2013试试。要64位版本的。MSDN也是推荐卸载干净,或者是安装个高版本VS。
http://social.msdn.microsoft.com/Forums/vstudio/zh-CN/5ab678b6-6a1a-4a1e-8c44-d77feb178fe5/vs2010mfc

本回答被提问者采纳

error C1010:在查找预编译头文件时遇到意外的文件结尾——————vs错误

在MFC工程下添加了一个新的文件,编译时出现错误,错误描述为:

技术分享图片

解决方法:

在解决方案管理器中找到相应的.cpp文件,右键属性,C++--预编译头中选择不使用预编译头。保存后Ctrl + F7重新编译即可。

技术分享图片

问题分析:

..

以上是关于vs2010新建立的mfc工程编译就出错error C2065: “DWORD_PTR”: 未声明的标识符的主要内容,如果未能解决你的问题,请参考以下文章

VS2010的MFC程序如何调用动态库文件(dll文件)?放在system32中仍然编译无法打开d

创建MFC时出现这个错误,怎么解决?

为啥VS2010下建立Qt工程时源代码下面显示红色波浪线?

vs2010怎么生成exe文件

VS2015 建立一个C++的MFC简易窗体程序项目

vs2010 MFC +win7下的程序 在win7上正常运行,Server2008就出错(ADO数据库连接出错)