2017-09-24 90 views
0

的我读this article和刚刚创建的VisualStudio中2017年CPP控制台项目,包括一些头。包括PortableDevice.h会导致很多错误

stdafx.h中:

#pragma once 

#include "targetver.h" 

#include <stdio.h> 
#include <tchar.h> 

#include <PortableDeviceApi.h> 
#include <PortableDevice.h> 

所有我所做的就是这一点,我得到了很多的错误。

오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C2143 구문 오류: ','이(가) '&' 앞에 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C2803 'operator =='에는 클래스 형식의 정식 매개 변수가 적어도 하나는 있어야 합니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C2805 이항 'operator =='에 매개 변수가 너무 적습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C2065 'pkeyOne': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C2228 '.pid' 왼쪽에는 클래스/구조체/공용 구조체가 있어야 합니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C2065 'pkeyOther': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C2228 '.fmtid' 왼쪽에는 클래스/구조체/공용 구조체가 있어야 합니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C3861 'IsEqualIID': 식별자를 찾을 수 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 35 
오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 36 
오류 C2143 구문 오류: ','이(가) '&' 앞에 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 36 
오류 C2803 'operator !='에는 클래스 형식의 정식 매개 변수가 적어도 하나는 있어야 합니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 36 
오류 C2805 이항 'operator !='에 매개 변수가 너무 적습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 36 
오류 C2065 'pkeyOne': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 36 
오류 C2065 'pkeyOther': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\propkeydef.h 36 
오류 C2065 'GUID_DEVINTERFACE_WPD': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 18 
오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 18 
오류 C2440 '초기화 중': 'initializer list'에서 'int'(으)로 변환할 수 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 18 
오류 C2065 'GUID_DEVINTERFACE_WPD_PRIVATE': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 23 
오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 23 
오류 C2374 'DEFINE_GUID': 재정의. 여러 번 초기화했습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 23 
오류 C2440 '초기화 중': 'initializer list'에서 'int'(으)로 변환할 수 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 23 
오류 C2065 'GUID_DEVINTERFACE_WPD_SERVICE': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 28 
오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 28 
오류 C2374 'DEFINE_GUID': 재정의. 여러 번 초기화했습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 28 
오류 C2440 '초기화 중': 'initializer list'에서 'int'(으)로 변환할 수 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 28 
오류 C2065 'WPD_EVENT_NOTIFICATION': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 404 
오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 404 
오류 C2374 'DEFINE_GUID': 재정의. 여러 번 초기화했습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 404 
오류 C2440 '초기화 중': 'initializer list'에서 'int'(으)로 변환할 수 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 404 
오류 C2065 'WPD_EVENT_OBJECT_ADDED': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 408 
오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 408 
오류 C2374 'DEFINE_GUID': 재정의. 여러 번 초기화했습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 408 
오류 C2440 '초기화 중': 'initializer list'에서 'int'(으)로 변환할 수 없습니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 408 
오류 C2065 'WPD_EVENT_OBJECT_REMOVED': 선언되지 않은 식별자입니다. ConsoleApplication1 c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\portabledevice.h 412 
... 

我不知道如何处理这个,因为我不熟悉Windows开发,这是第一次创建Windows应用程序。我该如何解决这个问题,或者我怎样才能得到这方面的信息?

+0

它抱怨C++特定的声明。编译器以某种方式认为它正在编译一个.c文件,但仍然定义了“__cplusplus”宏。不要自己定义它,我想。一定要使用项目模板开始,不要在没有告诉任何人的情况下大幅改动。 –

回答

0

更新:我离开了最初的回答,但我认为这是无关紧要的。你是否肯定你在你的问题中按照以下顺序包含了文件?

#include <PortableDeviceApi.h> 
#include <PortableDevice.h> 

因为这并不在空控制台应用程序产生的任何错误,但是,你应该扭转如下顺序,错误列表中选择您的问题相符:

#include <PortableDevice.h> 
#include <PortableDeviceApi.h> 

上述所有假设你安装了SDK。

最初的回答(很可能是无关的问题) 这只是一种猜测,因为你的问题是不完整的(因为它不具有完全的代码来重现问题),但我想你可能忘记添加proper main returning int which could result in C4430到您的控制台应用程序或其他一些简单的错误,如错误列表中的下一个C2143。一些声明后缺少;int定义或声明。

通过评论它的部分,看看到底是什么导致了错误,在源代码中执行二进制搜索,如果你不能找到它自己在一个小的代码片段,上传你的源代码在你的问题。

+0

我刚刚创建了空的控制台应用程序项目并添加了两个代码。 “#include ”和“#include ”。这两个代码会导致错误。 – RedLaboratory

+0

@RedLaboratory,是否有所作为,如果你的stdafx.h搬完两行代码到您的控制台应用程序的app_name.cpp(或任何你的main()是)?它会产生相同的错误还是不同的错误? –