`

GDI+实践之路(二)

MFC 
阅读更多

        在上一篇post中,我们已经通过建立一个简单的程序对GDI+有了一些初步的了解。接下来,为了能够提高开发效率,我打算将GDI+的API进行封装,提高代码的重用性。结果,我遇到了一个极其讨厌的问题。
通常,我们都需要将class的定义写在.h头文件中,那么很明显就要将gdiplus.h包含在头文件中了,但是,不知道为什么,我认为OK的代码却编译不过,例如:

#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib, 
"gdiplus.lib")

class CDisplay
{
protected:
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR           gdiplusToken;

public:
    
int Init();
    
int Release();
}
;

                                                                        (CDisplay.h)

在CDisplay.cpp中实现头文件中定义的两个方法,编译出现了如下错误:
error C2146: syntax error : missing ';' before identifier 'GraphicsState' 以及fatal error C1004: unexpected end of file found。而且编译结果显示错误出现在GDI+本身的头文件中。我想,这个错误一定不会是由于GDI+本身造成的,事实上将这个类应用到标准的MFC工程中,却没有问题。在网上找了很久一直不得其解,最后还是我的老大告诉了我其中的玄机:只需要在头文件中包含afxdtctl.h就可以将问题解决了。该afxdtctl.h文件中包含了GDI+的头文件中所需的一些宏定义,如果缺少了这些宏定义就会导致编译出现错误了。                 

分享到:
评论

相关推荐

    GDI+图形程序设计.zip

    GDI+提供了丰富的绘图功能,包括二维几何图形、曲线、文本、图像以及颜色管理等,使得开发者能够创建出具有高质量视觉效果的应用程序。 这本书《GDI+程序设计》显然是一个深入探讨GDI+技术的教程,它可能包含了GDI+...

    GDI+程序设计(清华大学)

    第二部分结合具体的代码实例,深入讲解了GDI+编程的各个细节,如绘图表面、坐标系、钢笔和画刷、文本和字体、图像和图像操作、路径和区域、变换处理以及打印等;第三部分重点讲解了自定义控件的设计和开发,包括...

    GDI+程序设计 GDI+程序设计 GDI+程序设计 GDI+程序设计

    GDI+(Graphics Device Interface Plus)是微软Windows操作系统中用于图形设备接口的增强版本,它为开发者提供了一套丰富的绘图工具,使得在Windows应用程序中创建、管理和显示图形变得更加便捷和高效。GDI+不仅继承...

    GDI+图像程序设计(PDF & 源码 -电子工业出版社)

    第13章 GDI+ 的最佳实践及性能技术 13.1 理解渲染过程 13.2 双缓存和无抖动绘图 13.3 理解SetStyle方法 13.4 绘图过程的质量与性能 总结 第14章 GDI互操作性 14.1 在受控环境中使用GDI 14.2 在受控代码中...

    GDI+程序设计 (中文版pdf)

    第二部分则是结合代码实例详细地讲述了GDI+编程的具体细节,涉及了绘图表面、坐标系、钢笔和笔刷、文本和字体、图像和图像操作、路径和区域、变换的处理、打印等关键概念。这部分内容对GDI+的核心功能进行了逐一讲解...

    GDI+图形程序设计

    这本书深入浅出地讲解了GDI+的各种功能和用法,不仅介绍了基本的绘图操作,还涵盖了高级特性和实践技巧。通过阅读本书,读者不仅可以掌握GDI+的基本概念,还能学会如何在实际项目中应用这些技术,提升Windows应用...

    GDI+ 实现3D图形

    在IT领域,GDI+(Graphics Device Interface ...实践和理解YLScsDrawing中的代码,将有助于你深化对GDI+的理解,并提升你在3D图形编程方面的能力。无论你是初学者还是有经验的开发者,这都是一次值得投入的学习之旅。

    GDI++中文帮助

    7. **性能优化**:可能包含一些关于提高GDI++绘图性能的技巧和最佳实践。 8. **示例代码**:为了帮助理解和应用,文档可能提供了一些实际的代码示例,展示如何在C++项目中集成GDI++。 9. **错误处理**:介绍在使用...

    GDI+程序设计_GDI+程序设计_

    通过学习和实践GDI+程序设计,C#开发者可以掌握创建动态图表、绘制流程图、自定义控件界面等一系列高级图形功能。这本书很可能会详细讲解如何使用以上提到的类和方法,通过实例演示和练习帮助读者逐步提升在图形图像...

    c# GDI+ 完整例子

    通过深入学习和实践这些示例,开发者可以掌握C# GDI+的全面技能,从而在自己的应用程序中实现丰富的图形界面和视觉效果。无论是开发桌面应用、游戏还是数据可视化工具,GDI+都是一个不可或缺的工具。

    精通GDI+编程 精通GDI+编程

    本篇文章将深入探讨GDI+编程的核心概念、主要功能以及如何在实践中应用。 GDI+的核心在于其丰富的图形对象,包括画笔(Pen)、刷子(Brush)、字体(Font)、图像(Image)等,这些对象用于创建和操纵各种图形元素...

    GDI+帮助手册 一本足够学会gdi+

    - **GDI+的安全考虑**:讨论如何避免GDI+编程中的潜在安全问题,如内存泄漏、资源管理不当等,以及如何遵循最佳安全实践。 - **检验构造函数调用成功与否**:讲解如何检查对象创建是否成功,确保程序不会因无效的...

    MFC_GDI及GDI+_CButton重绘

    在Windows编程领域,MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于简化Windows应用程序的开发。GDI(Graphics Device ...通过这样的实践,开发者可以更好地控制UI元素,满足特定的设计需求。

    GDI+实现3D效果饼图

    在IT行业中,图形用户界面(GUI)的可视化设计是至关重要的,它可以帮助用户更好地理解和交互数据。GDI+(Graphics Device Interface Plus)是Windows...通过不断实践和优化,你将能够创建出更加精美且功能丰富的图表。

    GDI+ 高级编程示例(附源码)

    本资源包含的是GDI+的高级编程示例,附带源码,非常适合对GDI+有深入学习需求的开发者进行研究和实践。 1. **GDI+基础概念** GDI+不仅支持基本的绘图操作,如线条、曲线、矩形和椭圆的绘制,还引入了图形对象、画...

    gdi.rar_GDI+ C++_c gdi+_c++ gdi_gdi_gdi+

    "c gdi+"和"c++_gdi"指的是C语言和C++语言中使用GDI+的编程实践。而“asm”可能指的是在底层使用汇编语言配合GDI+进行更高效的图形处理。 描述中的“Game 2D GDI + asm + c/c+”进一步强调了这个压缩包的内容可能...

    GDI+ SDK参考(翻译版本高清)

    GDI+(Graphics Device Interface Plus)是Windows操作系统中用于图形绘制和图像处理的一个高级API,它是GDI(Graphics Device Interface)的升级版。GDI+提供了丰富的2D图形、图像和文字渲染功能,广泛应用于软件...

    Microsoft GDI+ 库

    **Microsoft GDI+ 库详解** GDI+(Graphics Device Interface Plus)是微软推出的一种图形设备接口,它是Windows操作系统中的一个...通过深入学习和实践,开发者可以充分利用GDI+的功能,创作出独具特色的图形应用。

    C# GDI+实现网格绘制,并显示内容

    在本文中,我们将深入探讨如何使用C#中的GDI+库来实现网格绘制,并展示相关的基础知识和实践应用。GDI+(Graphics Device Interface Plus)是.NET Framework提供的一种图形处理接口,它为开发者提供了丰富的图形绘制...

    GDI+程序设计(GDI+ Programming: Creating Custom Controls Using C#)

    总之,《GDI+程序设计:Creating Custom Controls Using C#》是学习和掌握GDI+技术的宝贵资源,它不仅适合初学者入门,也为有经验的开发者提供了深入实践的机会。通过阅读本书并实际操作,开发者可以充分利用GDI+的...

Global site tag (gtag.js) - Google Analytics