Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 4
1

Компилятор Visual Studio матерится при инициализации GDI+

25.10.2019, 12:12. Показов 2525. Ответов 6

Author24 — интернет-сервис помощи студентам
Всем здравия! Схожу с ума. Проблема такая: Visual Studio 2017 (версия 15.5.7). Создаем проект мастером классических приложений (тип - Windows-приложение, галок никаких не стоит). Компилируем - запускается нормально. Добавляем стандартную инициализацию GDI+:

C++
1
2
3
4
5
6
7
8
9
10
11
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
 
using namespace Gdiplus;
 
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
 
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
 
GdiplusShutdown(gdiplusToken);
в соответствующие места проекта, компилируем - получаем кучу ошибок в окне вывода и error C1003 - остановка компиляции (количество ошибок превышает 100).

Вот сам CPP проекта:
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
// GdiInit.cpp: Определяет точку входа для приложения.
//
 
#include "header.h"
#include "GdiInit.h"
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
 
using namespace Gdiplus;
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
 
#define MAX_LOADSTRING 100
 
// Глобальные переменные:
HINSTANCE hInst;                                // текущий экземпляр
WCHAR szTitle[MAX_LOADSTRING];                  // Текст строки заголовка
WCHAR szWindowClass[MAX_LOADSTRING];            // имя класса главного окна
 
// Отправить объявления функций, включенных в этот модуль кода:
ATOM                MyRegisterClass(HINSTANCE hInstance);
BOOL                InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
 
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
 
    // TODO: разместите код здесь.
 
    // Инициализация Gdi+
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
 
    // Инициализация глобальных строк
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_GDIINIT, szWindowClass, MAX_LOADSTRING);
    MyRegisterClass(hInstance);
 
    // Выполнить инициализацию приложения:
    if (!InitInstance (hInstance, nCmdShow))
    {
        return FALSE;
    }
 
    HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_GDIINIT));
 
    MSG msg;
 
    // Цикл основного сообщения:
    while (GetMessage(&msg, nullptr, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
    return (int) msg.wParam;
}
 
 
 
//
//  ФУНКЦИЯ: MyRegisterClass()
//
//  НАЗНАЧЕНИЕ: регистрирует класс окна.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEXW wcex;
 
    wcex.cbSize = sizeof(WNDCLASSEX);
 
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_GDIINIT));
    wcex.hCursor        = LoadCursor(nullptr, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = MAKEINTRESOURCEW(IDC_GDIINIT);
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
 
    return RegisterClassExW(&wcex);
}
 
//
//   ФУНКЦИЯ: InitInstance(HINSTANCE, int)
//
//   НАЗНАЧЕНИЕ: сохраняет обработку экземпляра и создает главное окно.
//
//   КОММЕНТАРИИ:
//
//        В данной функции дескриптор экземпляра сохраняется в глобальной переменной, а также
//        создается и выводится на экран главное окно программы.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной
 
   HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
 
   if (!hWnd)
   {
      return FALSE;
   }
 
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
 
   return TRUE;
}
 
//
//  ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  НАЗНАЧЕНИЕ:  обрабатывает сообщения в главном окне.
//
//  WM_COMMAND — обработать меню приложения
//  WM_PAINT — отрисовать главное окно
//  WM_DESTROY — отправить сообщение о выходе и вернуться
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_CREATE:
        
        break;
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // Разобрать выбор в меню:
            switch (wmId)
            {
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
        break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            // TODO: Добавьте сюда любой код прорисовки, использующий HDC...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        GdiplusShutdown(gdiplusToken);
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
 
// Обработчик сообщений для окна "О программе".
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;
 
    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}
Где собака? Помогите разобраться. Пробовал на другой машине запускать - тжс. Раньше - несколько лет назад использовал GDI+ в проектах, но не помню, чтобы были заморочки. Куда копать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2019, 12:12
Ответы с готовыми решениями:

Компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7. Посоветуйте другой компилятор
Здравствуйте! Я недавно начал заниматься С++, но мой компилятор (Visual C++ 6.0) в плохой...

Visual Studio 2010 C Graphic Basics (GDI+)
День добрый, форумчане. Есть одна задача, а именно : &quot;В PictureBox случайно выбираются 2 точки....

Компилятор С++ из MS Visual Studio
Приветствую! Приходится кодить понемногу на разных ЯП, то веб, то систему, поэтому пользуюсь...

Компилятор Visual Studio
Посоветуйте хороший компилятор Visual Studio по таким требования: Одним словом что бы на диске С...

6
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 4
25.10.2019, 12:14  [ТС] 2
Вот вывод:
Кликните здесь для просмотра всего текста

1>------ Сборка начата: проект: GdiInit, Конфигурация: Debug Win32 ------
1>GdiInit.cpp
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(84): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(85): error C2440: инициализация: невозможно преобразовать "const char [37]" в "int"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(85): note: Не существует контекста, в котором такое преобразование возможно
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(85): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "IImageBytes"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(85): error C2059: синтаксическая ошибка: public
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(86): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(86): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(291): error C3646: id: неизвестный спецификатор переопределения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h(291): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(396): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(407): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(417): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(455): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(456): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(457): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(465): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(483): error C2535: Gdiplus::Image::Image(void): функция-член уже определена или объявлена
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(396): note: см. объявление "Gdiplus::Image::Image"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(518): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(529): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(773): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(828): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(828): error C2535: Gdiplus::Metafile::Metafile(void): функция-член уже определена или объявлена
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(773): note: см. объявление "Gdiplus::Metafile::Metafile"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(835): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(835): error C2535: Gdiplus::Metafile::Metafile(void): функция-член уже определена или объявлена
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(773): note: см. объявление "Gdiplus::Metafile::Metafile"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(844): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(844): error C2535: Gdiplus::Metafile::Metafile(void): функция-член уже определена или объявлена
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(773): note: см. объявление "Gdiplus::Metafile::Metafile"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(870): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(938): error C2535: Gdiplus::Metafile::Metafile(void): функция-член уже определена или объявлена
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusheaders.h(773): note: см. объявление "Gdiplus::Metafile::Metafile"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1145): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1145): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1145): error C2065: image: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1145): error C2275: Gdiplus::GpImage: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusgpstubs.h(66): note: см. объявление "Gdiplus::GpImage"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1145): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1151): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1151): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1151): error C2065: image: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1151): error C2275: Gdiplus::GpImage: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusgpstubs.h(66): note: см. объявление "Gdiplus::GpImage"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1151): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1168): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1256): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1259): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1262): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1274): error C2061: синтаксическая ошибка: идентификатор "PROPID"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1298): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1298): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1298): error C2065: bitmap: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1298): error C2275: Gdiplus::GpBitmap: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusgpstubs.h(67): note: см. объявление "Gdiplus::GpBitmap"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1298): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1304): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1304): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1304): error C2065: bitmap: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1304): error C2275: Gdiplus::GpBitmap: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusgpstubs.h(67): note: см. объявление "Gdiplus::GpBitmap"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(1304): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2235): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2235): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2236): error C2065: header: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2237): error C2275: Gdiplus::MetafileHeader: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetaheader.h(117): note: см. объявление "Gdiplus::MetafileHeader"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2237): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2255): error C2061: синтаксическая ошибка: идентификатор "IStream"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2275): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2275): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2275): error C2065: metafile: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2275): error C2275: Gdiplus::GpMetafile: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusgpstubs.h(68): note: см. объявление "Gdiplus::GpMetafile"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2275): warning C4229: устаревший элемент: пропуск модификаторов для данных
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2322): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2322): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2323): error C2275: HDC: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\windef.h(80): note: см. объявление "HDC"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2323): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "referenceHdc"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2333): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2333): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2334): error C2275: HDC: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\windef.h(80): note: см. объявление "HDC"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusflat.h(2334): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "referenceHdc"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdipluspath.h(145): error C2061: синтаксическая ошибка: идентификатор "byte"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(80): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(80): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(80): error C2761: "{ctor}": повторное объявление члена запрещено.
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(81): error C2448: Gdiplus::Metafile::{ctor}: вероятно, инициализатор, использующий стиль функции, является определением функции
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(199): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(199): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(200): error C2275: HDC: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\windef.h(80): note: см. объявление "HDC"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(200): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "referenceHdc"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(204): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(204): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(216): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(216): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(217): error C2275: HDC: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\windef.h(80): note: см. объявление "HDC"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(217): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "referenceHdc"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(223): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(223): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(235): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(235): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(236): error C2275: HDC: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\windef.h(80): note: см. объявление "HDC"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(236): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "referenceHdc"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(242): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(242): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(284): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(284): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(285): error C2065: header: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(286): error C2275: Gdiplus::MetafileHeader: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetaheader.h(117): note: см. объявление "Gdiplus::MetafileHeader"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(286): error C2761: "GetMetafileHeader": повторное объявление члена запрещено.
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusmetafile.h(287): error C2448: Gdiplus::Metafile::GetMetafileHeader: вероятно, инициализатор, использующий стиль функции, является определением функции
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(50): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(50): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(52): error C2275: BOOL: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\minwindef.h(157): note: см. объявление "BOOL"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(52): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "useEmbeddedColorManagement"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(53): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(53): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(85): error C2065: IStream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(85): error C2065: stream: необъявленный идентификатор
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(87): error C2275: BOOL: недопустимое использование этого типа в качестве выражения
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\minwindef.h(157): note: см. объявление "BOOL"
1>c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusbitmap.h(87): fatal error C1003: число ошибок превышает 100; остановка компиляции
1>Сборка проекта "GdiInit.vcxproj" завершена с ошибкой.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
фрилансер
5528 / 5119 / 1052
Регистрация: 11.10.2019
Сообщений: 13,439
25.10.2019, 12:20 3
GDlapka, в файле c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\gdiplusimaging.h

посмотри, на что именно ругается компилятор. Например, в строке 84 явно какой-то неопределённый тип используется. Надо сделать так, чтобы он стал определённым
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
25.10.2019, 12:35 4
Цитата Сообщение от GDlapka Посмотреть сообщение
Где собака? Помогите разобраться. Пробовал на другой машине запускать - тжс. Раньше - несколько лет назад использовал GDI+ в проектах, но не помню, чтобы были заморочки. Куда копать?
Покажи файл "header.h"

Добавлено через 7 минут
И "GdiInit.h"
0
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 4
25.10.2019, 12:36  [ТС] 5
header.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// header.h: включаемый файл для стандартных системных включаемых файлов,
// или конкретных включаемых файлов проектов
//
 
#pragma once
 
#include "targetver.h"
 
#define WIN32_LEAN_AND_MEAN             // Исключите редко используемые компоненты из заголовков Windows
// Файлы заголовков Windows:
#include <windows.h>
 
// Файлы заголовков C RunTime
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
 
 
// TODO: Установите здесь ссылки на дополнительные заголовки, требующиеся для программы
GdiInit.h
C++
1
2
3
#pragma once
 
#include "resource.h"
Просто голый проект.
0
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
25.10.2019, 12:37 6
Лучший ответ Сообщение было отмечено GDlapka как решение

Решение

Цитата Сообщение от GDlapka Посмотреть сообщение
header.h:
Убери #define WIN32_LEAN_AND_MEAN
1
0 / 0 / 0
Регистрация: 08.09.2019
Сообщений: 4
25.10.2019, 12:43  [ТС] 7
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Убери #define WIN32_LEAN_AND_MEAN

Большое человеческое СПАСИБО! Благодарен от души!!! Тему можно закрыть.
0
25.10.2019, 12:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2019, 12:43
Помогаю со студенческими работами здесь

Visual Studio 2017 Компилятор
Почему у меня нет компилятора как на видео? Отсутствуют элементы управления СБОРКА, ОТЛАДКА и пр.,...

Посоветуйте компилятор из MS Visual Studio
MS Visual Studio 6.0 C++ или MS Visual Studio 2005? И пожалуйста называйте причины почему вы...

Компилятор Visual studio 2008 C++
Как скомпилировать программу написанную в Visual C++ что бы она показала все значения ! Ну как в...

В коде возникли ошибки при переходе с Visual studio 2013 на Visual studio 2017
Добрый день, решил попробовать поменять свою 2013 студию на 2017 и заметил такую проблему, при...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru