Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Начинка
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 6
#1

Куча ошибок в заголовочных файлах,вызванных из windows.h!

02.09.2016, 19:04. Просмотров 686. Ответов 11
Метки нет (Все метки)

с чем это может быть связано? этот же код без всяких изменений уже компилировался и работал...


1> Исходный код.cpp
1>c:\program files\windows kits\8.0\include\um\winnt.h(290): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "PVOID64"
1>c:\program files\windows kits\8.0\include\um\winnt.h(290): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\winnt.h(8988): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Buffer"
1>c:\program files\windows kits\8.0\include\um\winnt.h(8988): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\synchapi.h(866): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "SYNCHRONIZATION_BARRIER"
1>c:\program files\windows kits\8.0\include\um\synchapi.h(866): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\synchapi.h(867): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "PSYNCHRONIZATION_BARRIER"
1>c:\program files\windows kits\8.0\include\um\synchapi.h(867): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\processthreadsapi.h(769): error C2065: PROCESS_MITIGATION_POLICY: необъявленный идентификатор
1>c:\program files\windows kits\8.0\include\um\processthreadsapi.h(769): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "MitigationPolicy"
1>c:\program files\windows kits\8.0\include\um\processthreadsapi.h(769): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files\windows kits\8.0\include\um\processthreadsapi.h(769): error C2491: SetProcessMitigationPolicy: определение dllimport данные не разрешено
1>c:\program files\windows kits\8.0\include\um\processthreadsapi.h(772): error C2059: синтаксическая ошибка: )
1>c:\program files\windows kits\8.0\include\um\processthreadsapi.h(780): error C2061: синтаксическая ошибка: идентификатор "PROCESS_MITIGATION_POLICY"
1>c:\program files\windows kits\8.0\include\um\threadpoollegacyapiset.h(79): error C2061: синтаксическая ошибка: идентификатор "WAITORTIMERCALLBACK"
1>c:\program files\windows kits\8.0\include\um\securitybaseapi.h(368): error C2061: синтаксическая ошибка: идентификатор "PCLAIM_SECURITY_ATTRIBUTES_INFORMATION"
1>c:\program files\windows kits\8.0\include\um\winbase.h(4964): error C2065: PFIRMWARE_TYPE: необъявленный идентификатор
1>c:\program files\windows kits\8.0\include\um\winbase.h(4965): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "FirmwareType"
1>c:\program files\windows kits\8.0\include\um\winbase.h(4965): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files\windows kits\8.0\include\um\winbase.h(4965): error C2491: GetFirmwareType: определение dllimport данные не разрешено
1>c:\program files\windows kits\8.0\include\um\winbase.h(4965): error C2059: синтаксическая ошибка: )
1>c:\program files\windows kits\8.0\include\um\winbase.h(8406): error C2061: синтаксическая ошибка: идентификатор "WAITORTIMERCALLBACK"
1>c:\program files\windows kits\8.0\include\um\winbase.h(8434): error C2061: синтаксическая ошибка: идентификатор "WAITORTIMERCALLBACK"
1>c:\program files\windows kits\8.0\include\um\winbase.h(9758): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "FileId"
1>c:\program files\windows kits\8.0\include\um\winbase.h(9758): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\winbase.h(9777): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "FileId"
1>c:\program files\windows kits\8.0\include\um\winbase.h(9777): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\winbase.h(9899): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "ExtendedFileId"
1>c:\program files\windows kits\8.0\include\um\winbase.h(9899): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\winioctl.h(5164): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "FileReferenceNumber"
1>c:\program files\windows kits\8.0\include\um\winioctl.h(5164): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\windows kits\8.0\include\um\winioctl.h(5165): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "ParentFileReferenceNumber"
1>c:\program files\windows kits\8.0\include\um\winioctl.h(5165): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2016, 19:04
Ответы с готовыми решениями:

Про добавление заголовочных файлов в заголовочных файлах
В который раз эта вещь засовывает мозги в блендер! Я про то, что не могу...

О стандартных заголовочных файлах
Не знаю в какую категорию отнести данное нубство, но все же: Часто использую...

Массивы в заголовочных файлах
в заголовочном файле в описании класса пишу: int _const_iMas =...

Определение переменных в заголовочных файлах
Здорова! Определил переменную в заголовочном фале от так #pragma once...

Линковка, реализация в заголовочных файлах
Ситуация следующая. Представим себет хедер, который содержит некоторый...

11
mishelle92
67 / 66 / 36
Регистрация: 09.10.2012
Сообщений: 214
Завершенные тесты: 1
02.09.2016, 23:17 #2
Покажите код, который компилируете.
0
Начинка
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 6
03.09.2016, 07:59  [ТС] #3
код пока крайне пуст


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
const  int MYWidth = 1280;
const  int MYHeight = 1024;
// Включаемые файлы
#include "Верхний колонтитул.h"
HWND hWnd;
 
HINSTANCE g_hInst;
HWND g_hWnd;
 
#define WNDWIDTH 400
#define WNDHEIGHT 400
#define WNDTYPE WS_OVERLAPPEDWINDOW
const char g_szClass[] = "FrameClass";
const char g_szCaption[] = "FrameCaption";
 
 
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev,LPSTR szCmdLine, int nCmdShow);
 
void AppError(BOOL Fatal, char *Text, ...);
long FAR PASCAL WindowProc(HWND hWnd, UINT uMsg,WPARAM wParam, LPARAM lParam);
BOOL RegisterWindowClasses(HINSTANCE hInst);
BOOL UnregisterWindowClasses(HINSTANCE hInst);
HWND CreateMainWindow(HINSTANCE hInst);
BOOL DoInit();
BOOL DoShutdown();
BOOL DoPreFrame();
BOOL DoFrame();
BOOL DoPostFrame();
 
 
 
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev,LPSTR szCmdLine, int nCmdShow)
{
  MSG Msg;
  g_hInst = hInst;
 
  if(RegisterWindowClasses(hInst) == FALSE)
    return FALSE;
 
  if((g_hWnd = CreateMainWindow(hInst)) == NULL)
    return FALSE;
  if(DoInit() == TRUE) {
 
    ZeroMemory(&Msg, sizeof(MSG));
    while(Msg.message != WM_QUIT) {
      if(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);}
      else 
      {
        if(DoPreFrame() == FALSE)
          break;
        if(DoFrame() == FALSE)
          break;
        if(DoPostFrame() == FALSE)
          break;
      }
    }
  }
 
  DoShutdown();
  UnregisterWindowClasses(hInst);
  return TRUE;
}
BOOL RegisterWindowClasses(HINSTANCE hInst)
{
  WNDCLASSEX wcex;
// Создание и регистрация класса окна
  wcex.cbSize = sizeof(wcex);
  wcex.style = CS_CLASSDC;
  wcex.lpfnWndProc = WindowProc;
  wcex.cbClsExtra = 0;
  wcex.cbWndExtra = 0;
  wcex.hInstance = hInst;
  wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
  wcex.hbrBackground = NULL;
  wcex.lpszMenuName = NULL;
  wcex.lpszClassName = g_szClass;
  wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  if(!RegisterClassEx(&wcex))
  return FALSE;
  return TRUE;
}
BOOL UnregisterWindowClasses(HINSTANCE hInst)
{
  UnregisterClass(g_szClass, hInst);
  return TRUE;
}
HWND CreateMainWindow(HINSTANCE hInst)
{
  hWnd = CreateWindow(g_szClass, g_szCaption,WNDTYPE, 0, 0, WNDWIDTH, WNDHEIGHT,NULL, NULL, hInst, NULL);
  if(!hWnd)
    return NULL;
 
  ShowWindow(hWnd, SW_NORMAL);
  UpdateWindow(hWnd);
 
  return hWnd;
}
void AppError(BOOL Fatal, char *Text, ...)
{
  char CaptionText[12];
  char ErrorText[2048];
  va_list valist;
 
  if(Fatal == FALSE)
    strcpy(CaptionText, "Error");
  else
    strcpy(CaptionText, "Fatal Error");
 
  va_start(valist, Text);
  vsprintf(ErrorText, Text, valist);
  va_end(valist);
 
  MessageBox(NULL, ErrorText, CaptionText,MB_OK | MB_ICONEXCLAMATION);
  if(Fatal == TRUE)
    PostQuitMessage(0);
}
long FAR PASCAL WindowProc(HWND hWnd, UINT uMsg,WPARAM wParam, LPARAM lParam)
{
  switch(uMsg) {
    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
  }
  return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
 
BOOL DoInit()
{
 
  D3DPRESENT_PARAMETERS d3dpp;
  
  IDirect3D9* _d3d9;
 
  if((_d3d9 = Direct3DCreate9(D3D_SDK_VERSION)) == NULL) {
// Произошла ошибка
}
  _d3d9 = Direct3DCreate9(D3D_SDK_VERSION);
  D3DDISPLAYMODE d3ddm;
  d3ddm.Width = 640;
  d3ddm.Height = 480;
  d3ddm.RefreshRate = 0; // по умолчанию
  d3ddm.Format = D3DFMT_A8R8G8B8;
  D3DFORMAT d3df;
 
 
  ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));
 
  d3dpp.BackBufferWidth            = 800;
  d3dpp.BackBufferHeight           = 600;
  d3dpp.BackBufferFormat           = D3DFMT_A8R8G8B8; //формат пикселей
  d3dpp.BackBufferCount            = 1;
  d3dpp.MultiSampleType            = D3DMULTISAMPLE_NONE;
  d3dpp.MultiSampleQuality         = 0;
  d3dpp.SwapEffect                 = D3DSWAPEFFECT_DISCARD;
  d3dpp.hDeviceWindow              = g_hWnd;
  d3dpp.Windowed                   = false; // полноэкранный режим
  d3dpp.EnableAutoDepthStencil     = true;
  d3dpp.AutoDepthStencilFormat     = D3DFMT_D24S8; // формат буфера глубины
  d3dpp.Flags                      = 0;
  d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
  d3dpp.PresentationInterval       = D3DPRESENT_INTERVAL_IMMEDIATE;
 
 
 
 
 
 
 
}
BOOL DoShutdown()
{
// ничего
 
  return TRUE;
}
BOOL DoPreFrame()
{
// ничего
  return TRUE;
}
BOOL DoFrame()
{
// ничего
    return TRUE;
}
BOOL DoPostFrame()
{
//ничего
  return TRUE;
}
Добавлено через 8 минут
ми заголовочный файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma comment(lib, "comctl32.lib")
#pragma comment(lib, "D3D9.lib")
#pragma comment(lib, "D3DX.lib")
#pragma comment (lib, "OpenGL32.lib")
#pragma comment (lib, "GLu32.lib")
 
 
#include <Windows.h>
#include <stdio.h>
#include <stdarg.h>
#include <D3D9.H>
#include <D3D9Types.h>
#include <d3dx9math.h>
#include <Winerror.h>
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7045 / 3346 / 452
Регистрация: 04.12.2011
Сообщений: 9,306
Записей в блоге: 5
04.09.2016, 17:23 #4
BOOL DoInit() ничего не возвращает. Но ругается на 290 строку \windows kits\8.0\include\um\winnt.h(290): а вы показываете по 193-ю.
0
Начинка
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 6
04.09.2016, 21:26  [ТС] #5
В исходном коде у меня ещё всего 193 строки ... это черновик...
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7045 / 3346 / 452
Регистрация: 04.12.2011
Сообщений: 9,306
Записей в блоге: 5
04.09.2016, 21:45 #6
Цитата Сообщение от Начинка Посмотреть сообщение
В исходном коде у меня ещё всего 193 строки ...
Хоть где. Важно что пишет компилятор и что вы показываете. И если он пишет что ошибка в строке №a файла winnt.h а вы показываете другое, то что же искать?
И в том файле если вы решили что-то поправить, то сможете кому угодно и чего угодно посоветовать сами. А 290-я строка там может выглядеть как-то так:
C++
1
#  define __C89_NAMELESSUNIONNAME7
посмотрите:
https://source.winehq.org/source/include/winnt.h
0
Начинка
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 6
05.09.2016, 17:19  [ТС] #7
кажется,я нашёл проблему

да и решение тут есть
Итак ,вопрос сводится к тому,где найти оригиналы заголовочных файлов для vs12?)

хм. сделаем так: www. programmersforum. ru /showthread.php?t=294059
0
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
05.09.2016, 18:54 #8
Оригиналы заголовочных файлов VS12 находятся в VS12.
0
Начинка
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 6
05.09.2016, 19:00  [ТС] #9
Исправленные оригиналы больше не оригиналы,а переустановка не помогла.
0
mishelle92
67 / 66 / 36
Регистрация: 09.10.2012
Сообщений: 214
Завершенные тесты: 1
05.09.2016, 22:16 #10
Начинка, начните с простого. Такой код скомпилируется у вас?

C++
1
2
3
4
5
6
#include <windows.h>
 
int main()
{
    return 0;
}
Добавлено через 2 минуты
М.б. не студию стоило переустанавливать, а Windows SDK.
0
Начинка
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 6
05.09.2016, 23:07  [ТС] #11
методом проб было выявлено,что все ошибки вызывает "windows.h",то есть такой код не скомпилируется
0
zss
Модератор
Эксперт С++
7083 / 6619 / 4190
Регистрация: 18.12.2011
Сообщений: 17,446
Завершенные тесты: 1
06.09.2016, 08:20 #12
Цитата Сообщение от Начинка Посмотреть сообщение
переустановка не помогла
Надо сначала полностью снести старую версию, а только потом переустановить.
Если не поможет, то плохой дистрибутив. Ищите другой!
0
06.09.2016, 08:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2016, 08:20

Странные объявления функций в заголовочных файлах
Пытаюсь потихоньку разобраться в C++. Когда читаешь теорию, почти все понятно,...

Объявлние классов в разных заголовочных файлах
Приветствую всех участников форума. Есть 2 класса А и В. Каждый из содержит...

Статические свойства структур в заголовочных файлах
Всем привет. Не могу найти в интернете инфу о том, как ведут себя статические...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru