win32 C ++ печать PRINTDLGEX не объявлена? - PullRequest
0 голосов
/ 19 января 2009

Я пытаюсь понять, как печатать на C ++. Я хочу получить контекст устройства с помощью функции PrintDlgEx, которая нуждается в структуре PRINTDLGEX. Однако я не могу создать PRINTDLGEX, потому что он говорит, что он не объявлен. Я включил Commdlg.h и Windows.h и связал Comdlg32.lib, но все безрезультатно. Я что-то упускаю? Я могу зайти в файл заголовка Commdlg и увидеть, что PRINTDLGEX объявлен, но по какой-то причине я не могу его использовать? Моя операционная система - Windows Vista.

Ответы [ 2 ]

1 голос
/ 19 января 2009

Возможно, он не объявлен, потому что он находится внутри блока #ifdef STDMETHOD, начиная со строки # 878 в Commdlg.h

STDMETHOD определено в basetyps.h

Этот пост, Настройка PrintDlgEx и IPrintDialogCallback , также может быть полезен.

0 голосов
/ 01 октября 2010

Вы должны объявить вашу целевую версию Windows достаточно современной, чтобы поддерживать структуру, значения по умолчанию предполагают нечто древнее Как правило, это будет сделано в вашем файле stdafx.h. Эти определения должны предшествовать включению заголовочных файлов Windows.

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#define _WIN32_IE 0x0501
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...