Я читаю Эта статья и только что создал консольный проект cpp в VisualStudio 2017, включая несколько заголовков.
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. Как я могу решить эту проблему или как получить информацию об этом?
ОбновитьЯ оставил первоначальный ответ, но думаю, что он не имеет значения. Вы уверены, что включили файлы в следующем порядке, как в вашем вопросе?
#include <PortableDeviceApi.h>
#include <PortableDevice.h>
Поскольку это не приводит к ошибкам в пустом консольном приложении, однако, если вы измените порядок, как показано ниже, список ошибок соответствует вашему вопросу:
#include <PortableDevice.h>
#include <PortableDeviceApi.h>
Все вышеизложенное при условии, что у вас установлен SDK.
Первоначальный ответ (скорее всего, не имеет отношения к проблеме)
Это всего лишь предположение, поскольку ваш вопрос является неполным (поскольку в нем нет полного кода для воспроизведения проблемы), но я думаю, что вы, возможно, забыли добавить правильный main
возврате int
что может привести к C4430 в консольное приложение или другую простую ошибку, как следующую в вашем списке ошибок C2143. Некоторые отсутствуют ;
после заявления или int
в определении или объявлении.
Выполните бинарный поиск в исходном коде, комментируя его части, чтобы увидеть, что именно вызывает ошибки, и, если вы не можете найти его самостоятельно в небольшом фрагменте кода, опубликуйте исходный код в своем вопросе.
Других решений пока нет …