Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
-23 / 4 / 0
Регистрация: 15.08.2014
Сообщений: 492

Не получается скомпилировать пример из SDK

28.05.2022, 19:06. Показов 736. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
При попытке скомпилировать DLL демонстрационного фильтра DUMP я получаю ошибку в строке 54 - см. код далее.
Ошибки перечислены далее.

Насколько я понимаю, проблема проистекает из того, что класс CAggDirectDraw наследуется из 2-х других классов.
Непонятно для меня - почему ошибка случается в примере из MSDN, а самое главное - каким образом ее исправить ???

Ошибки:

Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C3244 CAggDirectDraw::~CAggDirectDraw(void): этот метод был создан "<Нет данных>", но не "IDirectDraw" Dump C:\Users\Kras\source\repos\Windows-classic-samples\Samples\Win7Samples\multimedia\directshow\BaseClasses\videoctl.h 54
Ошибка C2385 неоднозначный уровень доступа "{dtor}" Dump C:\Users\Kras\source\repos\Windows-classic-samples\Samples\Win7Samples\multimedia\directshow\BaseClasses\videoctl.h 54
Ошибка C3254 CAggDirectDraw: класс содержит явное переопределение "{dtor}", но не является производным от интерфейса, который содержит объявление функции Dump C:\Users\Kras\source\repos\Windows-classic-samples\Samples\Win7Samples\multimedia\directshow\BaseClasses\videoctl.h 54
Ошибка C2440 инициализация: невозможно преобразовать "const wchar_t [6]" в "LPWSTR" Dump C:\Users\Kras\source\repos\Windows-classic-samples\Samples\Win7Samples\multimedia\directshow\filters\dump\dump.cpp 92



А вот код с ошибкой, кстати это файл videoctl.h из SDK (папка BASECLASSES)

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
// Class that aggregates an IDirectDraw interface
 
class CAggDirectDraw : public IDirectDraw, public CUnknown
{
protected:
 
    LPDIRECTDRAW m_pDirectDraw;
 
public:
 
    DECLARE_IUNKNOWN
    STDMETHODIMP NonDelegatingQueryInterface(REFIID riid,__deref_out void **ppv);
 
    // Constructor and destructor
 
    CAggDirectDraw(__in_opt LPCTSTR pName,__inout_opt LPUNKNOWN pUnk) :
        CUnknown(pName,pUnk),
        m_pDirectDraw(NULL) { };
 
    virtual CAggDirectDraw::~CAggDirectDraw() { };  // !!!!!!! СТРОКА 54 - ЗДЕСЬ ОШИБКА
 
    // Set the object we should be aggregating
    void SetDirectDraw(__inout LPDIRECTDRAW pDirectDraw) {
        m_pDirectDraw = pDirectDraw;
    }
 
    // IDirectDraw methods
 
    STDMETHODIMP Compact();
    STDMETHODIMP CreateClipper(DWORD dwFlags,__deref_out LPDIRECTDRAWCLIPPER *lplpDDClipper,__inout_opt IUnknown *pUnkOuter);
    STDMETHODIMP CreatePalette(DWORD dwFlags,__in LPPALETTEENTRY lpColorTable,__deref_out LPDIRECTDRAWPALETTE *lplpDDPalette,__inout_opt IUnknown *pUnkOuter);
    STDMETHODIMP CreateSurface(__in LPDDSURFACEDESC lpDDSurfaceDesc,__deref_out LPDIRECTDRAWSURFACE *lplpDDSurface,__inout_opt IUnknown *pUnkOuter);
    STDMETHODIMP DuplicateSurface(__in LPDIRECTDRAWSURFACE lpDDSurface,__deref_out LPDIRECTDRAWSURFACE *lplpDupDDSurface);
    STDMETHODIMP EnumDisplayModes(DWORD dwSurfaceDescCount,__in LPDDSURFACEDESC lplpDDSurfaceDescList,__in LPVOID lpContext,__in LPDDENUMMODESCALLBACK lpEnumCallback);
    STDMETHODIMP EnumSurfaces(DWORD dwFlags,__in LPDDSURFACEDESC lpDDSD,__in LPVOID lpContext,__in LPDDENUMSURFACESCALLBACK lpEnumCallback);
    STDMETHODIMP FlipToGDISurface();
    STDMETHODIMP GetCaps(__out LPDDCAPS lpDDDriverCaps,__out LPDDCAPS lpDDHELCaps);
    STDMETHODIMP GetDisplayMode(__out LPDDSURFACEDESC lpDDSurfaceDesc);
    STDMETHODIMP GetFourCCCodes(__inout LPDWORD lpNumCodes,__out_ecount(*lpNumCodes) LPDWORD lpCodes);
    STDMETHODIMP GetGDISurface(__deref_out LPDIRECTDRAWSURFACE *lplpGDIDDSurface);
    STDMETHODIMP GetMonitorFrequency(__out LPDWORD lpdwFrequency);
    STDMETHODIMP GetScanLine(__out LPDWORD lpdwScanLine);
    STDMETHODIMP GetVerticalBlankStatus(__out LPBOOL lpblsInVB);
    STDMETHODIMP Initialize(__in GUID *lpGUID);
    STDMETHODIMP RestoreDisplayMode();
    STDMETHODIMP SetCooperativeLevel(HWND hWnd,DWORD dwFlags);
    STDMETHODIMP SetDisplayMode(DWORD dwWidth,DWORD dwHeight,DWORD dwBpp);
    STDMETHODIMP WaitForVerticalBlank(DWORD dwFlags,HANDLE hEvent);
};
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2022, 19:06
Ответы с готовыми решениями:

Не получается скомпилировать пример с libffi
Пытаюсь использовать libffi.lib в программе. #include &lt;stdio.h&gt; #include &lt;ffi.h&gt; #include &lt;Windows.h&gt; #pragma comment( lib,...

Переделать пример Remoting Events с SDK
Такой вопрос. Все наверно знают в SDK пример RemotingEvents. Так вот. Решил переделать его так, чтобы Регистрировался event не из...

Скомпилировать пример из документации CUDA cuBLAS
Привет всем, есть документация по библиотеке cublas_v2.3 http://www.naic.edu/~phil/hardware/nvidia/doc/CUBLAS_Library_2.3.pdf На...

2
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
28.05.2022, 22:21
Лучший ответ Сообщение было отмечено LUN2 как решение

Решение

Цитата Сообщение от LUN2 Посмотреть сообщение
очему ошибка случается в примере из MSDN
Потому что раньше компилятор MS гораздо хуже поддерживал стандарт С++, чем сейчас. Соответственно код, в том числе в документации, содержал всякие вольности.
Вот: https://docs.microsoft.com/en-... om=vs-2019
The /permissive- option is compatible with almost all of the header files from the latest Windows Kits, such as the Software Development Kit (SDK) or Windows Driver Kit (WDK), starting in the Windows Fall Creators SDK (10.0.16299.0). Older versions of the SDK may fail to compile under /permissive- for various source code conformance reasons.
Там же по ссылке есть примеры приведения кода к стандартному виду.
1
-23 / 4 / 0
Регистрация: 15.08.2014
Сообщений: 492
28.05.2022, 22:35  [ТС]
DrOffset, спасибо за ответ!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2022, 22:35
Помогаю со студенческими работами здесь

Не могу скомпилировать MDSN пример сервиса
https://docs.microsoft.com/en-us/windows/win32/services/the-complete-service-sample касаемо создания .exe и прочее, все ок, но c ...

Не получается скомпилировать
C:/PROGRA~2/MINGW-~1/I686-8~1.0-P/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_l...

Не получается скомпилировать
Построить график функции из задания 2. График представляет собой изображение из 50 символов по горизонтали и 50 символов по вертикали. Для...

Не получается скомпилировать
Добрый вечер форумчане. Дело состоит в следующем: не могу скомпилировать прогу, выдает какие то мутные ошибка код и скриншот прилагаются. ...

Не получается скомпилировать
using System; using System.Windows.Forms; using System.Drawing; class kours { public class ButtonForm : Form { ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru