win32 C++ 打印 PRINTDLGEX 未声明?
Posted
技术标签:
【中文标题】win32 C++ 打印 PRINTDLGEX 未声明?【英文标题】:win32 C++ printing PRINTDLGEX not declared? 【发布时间】:2009-01-19 07:01:24 【问题描述】:我想弄清楚如何用 C++ 打印。我想使用 PrintDlgEx 函数获取设备上下文,该函数需要 PRINTDLGEX 结构。但是,我无法创建 PRINTDLGEX,因为它说它未声明。我已经包含了 Commdlg.h 和 Windows.h 并链接了 Comdlg32.lib,但都无济于事。有什么我想念的吗?我可以进入 Commdlg 头文件并看到 PRINTDLGEX 已声明,但由于某种原因我不能使用它?我的操作系统是 Window Vista。
【问题讨论】:
【参考方案1】:它可能未声明,因为它位于从 Commdlg.h 的第 878 行开始的 #ifdef STDMETHOD
块中
STDMETHOD
定义在basetyps.h
这篇 Customizing PrintDlgEx and IPrintDialogCallback 的帖子也可能有用。
【讨论】:
【参考方案2】:您需要声明您的目标 Windows 版本足够现代以支持该结构,默认值假定一些古老的东西。通常这将在您的stdafx.h
文件中完成。这些定义必须在 Windows 头文件的包含之前。
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#define _WIN32_IE 0x0501
【讨论】:
以上是关于win32 C++ 打印 PRINTDLGEX 未声明?的主要内容,如果未能解决你的问题,请参考以下文章
Win32 PrintDlg、PrintDlgEx、崩溃和古怪