0

我阅读了这篇文章并刚刚在 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 应用程序。我该如何解决这个问题或如何获得有关此的信息?

4

1 回答 1

0

更新:我留下了最初的答案,但我认为这无关紧要。您是否确定按照问题中的以下顺序包含文件?

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

由于这不会在空控制台应用程序中产生任何错误,但是,如果您将顺序颠倒如下,错误列表将与您的问题相匹配:

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

以上所有假设您已安装 SDK。

初始答案(很可能与问题无关)这只是一个猜测,因为您的问题不完整(因为它没有完整的代码来重现问题),但我认为您可能忘记添加可能导致的正确main返回intC4430到您的控制台应用程序或其他一些简单的错误作为错误列表C2143中的下一个错误。;在声明之后或int定义或声明中缺少一些。

通过注释部分代码在源代码中执行二进制搜索,以查看导致错误的确切原因,如果您自己在一个小代码片段中找不到它,请在您的问题中发布您的源代码。

于 2017-09-24T05:16:19.553 回答