包括PortableDevice.h会导致很多错误

时间:2017-09-24 04:24:35

标签: c++ visual-studio-2017 wpd

我阅读this article并在VisualStudio 2017中创建了一个cpp控制台项目,包括一些标题。

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应用程序,因此我无意处理此问题。如何解决此问题或如何获取有关此问题的信息?

1 个答案:

答案 0 :(得分: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

在源代码中执行二进制搜索,方法是对其中的部分内容进行评论,看看究竟是什么导致了错误,如果您无法在一个小代码段中找到它,请在您的问题中发布源代码。