gdi+ 1.1 配置与使用

AHK v1 + GDI+ 截图脚本:5分钟实现自定义截图工具(附完整代码) 本文详细介绍了如何使用AutoHotkey v1配合GDI+库快速打造一款轻量级、高度可定制的专属截图工具。通过完整的代码示例,从环境搭建、基础截图(全屏/区域)到高级功能(图像编辑、水印、自动化工作流)逐步讲解,帮助用户摆脱臃肿的第三方软件,实现高效、免费的截图解决方案。 阅读详情

1.概要
gdi+ 1.1增加了很多有用的函数,对应的文件为gdiplus.dll,一般放置在c:/windows/system32下面。
而gdiplus.dll的版本在Windows XP下面是5.0,即gdi+ 1.0,在vista下面是6.0,即gdi+1.1。
微软并没有发布独立的gdiplus.dll 6.0版本,所以擅自取出6.0的版本作为商业使用视为盗版,
故下面的叙述仅仅为了学习和研究gdi+ 1.1新特性。
2.文件获取
首先需要获取gdiplus.dll 6.0的版本,你可以下载 powerpoint viewer 2003来获取,安装之后在
C:/Program Files/Microsoft Office/PowerPoint Viewer下面有。
然后安装Windows SDK 6.0的版本,在微软的网站上下载 WindowsSDK_Vista_Feb2007 Update即可,
这个SDK里面其实已经包括支持gdi+ 1.1的头文件(header files)和库文件(library files)。
有了头文件、库文件、DLL文件,即可开始我们的GDI+ 1.1开发实践了。
3.WinSxS与DLL地狱
你可能会遇到这种情况,把自己辛辛苦苦编译的程序拿到别人的机器上运行,却发现弹出一个冷冰冰的提示: “由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”
当然,你不用浪费脑细胞去找什么配置问题,因为这压根和你的程序逻辑没有关系。
问题还是源自臭名昭著的”Dll Hell(动态库地狱)”问题,简单说,就是由于应用程序所需要的动态库可能会单独更新,而程序本身仅从文件名来识别动态库,于是造成版本混乱,甚至引起程序挂掉。比如说,通过vc编译出的c/c++程序大都会依赖微软的运行时库msvcr**.dll、msvcp**.dll、mfc**.dll等,这类文件在不同的操作系统上版本可能不同,所以从vc8开始,微软开始强制使用manifest文件用于说明PE文件的”依赖项”情况。
当XP以上操作系统运行这个程序运行时,会自动从当前目录和”%WinDir%/WinSxS”目录下寻找这个组合库的详细信息,即符合版本要求的”Microsoft.VC80.CRT.manifest”文件,如果找不到,操作系统就会抛出文章开始的“配置错误”异常。
所以,即便得到了最新版的gdiplus.dll,也不一定能够正确使用到。这点可以通过360安全卫士->高级->系统进程状态查看到你当前的exe使用的是哪个dll。
4.撰写manifest来控制DLL的使用
A.在vc++2008中,先将gdiplus.dll(6.0)拷贝到“项目所在目录/debug中”。
B.建立manifest,拷贝到项目所在目录/res中。内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity type="win32" name="Microsoft.Windows.GdiPlus" version="1.0.2600.5581" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df"/>
    <file name="GdiPlus.dll" hash="2c6f2780dcdf149c204fe7bcfb0e99dd07d9f82e" hashalg="SHA1"/>
</assembly>
C.查看项目属性->清单工具->输入和输出->附加清单文件->$(InputDir)//res//gdiplus.manifest
生成exe之后,会自动将此manifest的内容合并到exe中,当然,你也可以在debug目录下面找到XXX.manifest,用记事本打开,看看你添加的内容是否合并进去了。
5.配置开发环境
A.在stdafx.h添加:
// for GDI+ 1.1
#include <comdef.h>
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#endif
#pragma comment(lib,"gdiplus.lib")
// end for GDI+ 1.1
B.在程序初始化的地方加入:
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
当然先要定义两个变量:
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
C.在程序卸载的地方加入:
GdiplusShutdown(m_pGdiToken);
6.OK啦
现在你可以开始使用GDI+ 1.1了,不是GDI+ 1.0哦。
包括一些特别有用的函数都可以使用,再也不用自己写了:
ConvertFormat
InitializePalette
...
对于MSDN上面关于GDI+方面的,注意到:
Stock Implementation:gdiplus.dll
HeaderDeclared in:GdiplusBitmap.h, include gdiplus.h
Import library:gdiplus.lib
Minimum availability:GDI+ 1.1
Minimum operating systems:Windows 98, Windows XP, Windows 2000, Windows NT 4.0 SP6
红色字体标注的地方,就是要求最低要求GDI+ 1.1。
期望本文对初学GDI+ 1.1的读者起到抛砖引玉的作用。

WIN32 GDI+ 学习笔记(一):配置GDI+ 关于GDI+的介绍网上到处都有,在这里就不多介绍了。主要是记录下在GDI+学习中的体会与心得,以及一些技巧。 由于笔者不打算用MFC而是用WIN32 API,故没有选择庞大的VS,而是挑了一个顺手一点的轻量级IDE:Dev-C++。 首先下载GDI+的文件包:www.codeguru.com/code/legacy/gdi/GDIPlus.zip,里面包含了所需的头文件以及静态库。解压 阅读详情

相关推荐

C++/GDI+ 学习笔记(一)——安装、配置&使用

使用GDI+很简单。需要做的有一下几个步骤。1.       安装GDI+ SDK开发包。网上很多地方都有下载。解压到一个地方即可。2.       设置编译器的包含路径,VC6的设置方法是 Tools/Options/Directories下分别设置inlude和lib的路径即可。当然也可以在每个工程的Setting里修改相关的设置达到同样的效果。在包含相关的文件的时候,加上全路径也可以

非语 1万+

各种显卡技术参数

转帖自:http://www.kludx.com/browse_video_cards_detailed.phpATI  DirectX OpenGLName DirectXPixel ShaderVertex ShaderPrimitive CountMax. Vertex IndexActive LightsTexture WidthMax Point SizeVS ConstVS Inst. ExecutedVS 3.0 Inst. SlotsPS Inst. ExecutedPS 3.0 Inst.

自由空间,实现思想的自由之地 1250

MFC中用GDI+为Picture Control加载JPG/PNG/BMP图像

Picture Control是MFC中常用的静态图像显示控件,但原生仅支持BMP格式位图,无法直接加载JPG、PNG等现代图像格式。其底层依赖STM_SETIMAGE消息与HBITMAP句柄,而GDI+作为Windows原生图形接口,提供跨格式解码能力(含Alpha通道处理)和宽字符路径支持。通过GDI+解码+内存DC中转+CreateDIBSection生成兼容位图,可绕过CImage等中间层,在不修改控件类的前提下实现资源位图、本地BMP、JPG/PNG三类图像的统一加载。该方案显著提升MFC桌面应用

weixin_29194693的博客 210

Win32 DLL中使用GDI+

1、使用GDI+时声明一下#include using namespace Gdiplus;#pragma comment(lib, "gdiplus")2、再下载最新的SDK,将在VC环境中添加最新SDK的Include&Lib3、上面两条都不是我最想说的WIN32 DLL中使用GDI+需要注意的。如果仅这样在编译时是通不过。将stdafx.h中向导生成的WIN32_LEAN_AND_MEAN宏

MSVCer的专栏 3943

GDI+ GdiPlus.lib GdiPlus.h GdiPlus.dll完整开发包

完整的GDI+开发包,放上来只是方便大家下载。包含GdiPlus.lib GdiPlus.h GdiPlus.dll三个文件。

GDIGDI+.rar

MFC中使用GDI与GDI+

GDI+环境配置与使用方法

<br />简介:本文主要针对VC++.NET程序开发人员,如果使用VC++6.0,那么需要下载微软的GDIPLUS支持包(如果使用VS2003或以上版本则不需要下载GDIPLUS支持包了,因为它本身已包含了这些文件)。在微软官方网站下载时需认证Windows为正版,另外我们可从这个地址下载:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip<br />一个完整的GDI+支持包至少包括如下文件: <br />    (1)头文件:gdiplus.h<br

scollins的专栏 5027

GDI+开发包 GDI+ SDK

GDI+开发包,解压文件,并将其中的Includes和Lib中的文件复制到VS安装目录中VC98目录下的Includes和Lib文件夹中

GDI+ 安装、配置、使用

<br />一、安装、配置<br />使用GDI+很简单。需要做的有一下几个步骤。<br /> 1.       安装GDI+ SDK开发包。网上很多地方都有下载。解压到一个地方即可。<br /> 2.       设置编译器的包含路径,VC6的设置方法是 Tools/Options/Directories下分别设置inlude和lib的路径即可。当然也可以在每个工程的Setting里修改相关的设置 达到同样的效果。在包含相关的文件的时候,加上全路径也可以。<br /> 3.      

飘羽随风 3758

GDIPlus.zip

GDIPlus.zip

GDI+(gdiplus)_SDK 文档和源码包及相关库文件

GDI+作为GDI的拓展版,主流格式(bmp/jpeg/png/gif/tiff)都支持,并有很多图片操作相关的函数,是封装得比较好的库,假如你不想自己写编解码操作,可以考虑用它。详见百科:http://baike.baidu.com/view/117889.htm 里面包括:中文参考文档+gdiplus源码+gdiplus.dll+GdiPlus.lib

如何在VC中使用GDI+。

GDI+可应用于二维向量图象,栅格图象及排版,是为C/C++程序员而设计的表现为C++类而存在的接口,能用于一切基于Windows的应用中。作为GDI的后继者,GDI+在GDI中增加了新功能,如文本的反锯齿,渐变笔刷,Alpha溶合;也优化了GDI许多已有的功能。此外,GDI+改变了编程模式,使其更灵活及易用。GDI+并不限于在.Net中存在,实际上它由Windows XP或Windows S

刘胜的专栏 2万+

gdi++++最新版,完美支持windows7

最好用的渲染工具,不好用的话,你来找找我!

C++ GDI+ 安装 配置 使用

一、安装、配置 使用GDI+很简单。需要做的有一下几个步骤。 1.       安装GDI+ SDK开发包。网上很多地方都有下载。解压到一个地方即可。 2.       设置编译器的包含路径,VC6的设置方法是 Tools/Options/Directories下分别设置inlude和lib的路径即可。当然也可以在每个工程的Setting里修改相关的设置达到同样的效果。在包含相关的文件的时候

选择飞翔 1109

GDI类库下载(VC++开发常备)

内容索引:VC/C++源码,控件相关,GDI,半透明  GDI类库下载(VC++开发常备),包括GdiPlus.lib库以及GdiPlus.h、GdiPlusPath.h、GdiPlusBrush.h、GdiPlusMem.h、GdiPlusTypes.h、GdiPlusFlat.h……等文件。   昨天调试一程序需要本类库,在网上搜了一大堆,竟然都不提供下载,感觉很不爽,在csdn以高分得到了这个包,虽然很老的东西,但是我们还是离不开她。

W5500 MACRAW模式实战:在ESP32上抓取并解析原始以太网数据包

本文详细介绍了如何在ESP32开发板上使用W5500芯片的MACRAW模式捕获和解析原始以太网数据包。通过硬件连接指南、代码实现示例和协议解析技巧,帮助开发者深入理解网络通信底层机制,实现网络嗅探和自定义协议开发等高级应用。

weixin_42520573的博客 418

vs2010使用GDI+配置以及手动添加ExitInstance()

要使用gdi+绘图,首先我们要将环境配好,具体步骤如下: 1、首先在stdafx.h或者其他头文件里面加上以下代码,以包含GDI+的头文件和lib文件: #include <gdiplus.h> using namespace Gdiplus; #pragma comment(lib, "gdiplus.lib") 2、然后在CWinApp继承下来的应用程序类里面声明两个变量: p...

Alan_Program的博客 1000

相控阵多功能雷达工作模式识别技术综述

本文综述了相控阵雷达工作模式识别技术的研究进展。首先介绍了相控阵雷达的典型工作模式分类及其信号特征参数,包括搜索模式(VS、RWS、TWS)、跟踪模式(STT、MTT、TAS)和其他模式(SAM、SAR)等。随后重点阐述了基于信号特征的识别方法,包括时域特征(PRI分析、脉冲幅度包络、数据率)、频域特征(载频变化、调制方式)和混合特征分析方法。最后讨论了当前技术面临的挑战与发展趋势,包括复杂信号环境下的识别难题、新型雷达技术的适应需求以及深度学习技术的应用前景。该领域的研究对电子侦察和威胁评估具有重要意义。

Grow into a more wonderful you 1798

GDI+入门(Starting with GDI+)

http://www.codeproject.com/KB/GDI-plus/startinggdiplus.aspx 绪论我现在已经使用GDI+大概一周了,并且我不得不说GDI+是一个受欢迎的改良产品。我在写一个画图程序,很多我考虑的事情我都必须得自己写下来确认,这就意味着我可以“免费”得到它们。 很多我考虑过的事情,我都要确认自己写下来了,这就意味着我可以“免费”得到它们。我猜这样

Gary's Blog --- A C++ programmer 2262

告别CMake依赖!在Visual Studio 2022中直接配置VTK 9.4开发环境(附完整项目示例)

本文详细介绍了如何在Visual Studio 2022中直接配置VTK 9.4开发环境,无需依赖CMake。通过图文教程和完整项目示例,帮助C++开发者快速集成VTK库,简化开发流程,提升工作效率。特别适合科学可视化任务的开发者。

weixin_26804345的博客 414

Flotherm XT学习历程

大家好,通过半年的热仿真软件学习使用,最终发现最好用,最好上手的软件就是Flotherm XT,对新手非常友好,但由于软件近几年才发布,网上教程非常少,后面我将在这里持续分析软件使用心得,和大家一起学习。

xiaoredred的博客 6259

VC中使用GDI+的配置方法概述

本文以Visual C++ 6.0及Visual Studio 2003为例简述了VC中GDI的配置方法,具体操作如下: 一、对于Visual C++ 6.0的用户: 1. 下载GDI+的库。运行GDI+需要一个GdiPlus.dll的文件; 开发GDI+的程序,还需要GdiPlus.lib和GdiPlus*.h文件.这些都可以在微软的网站上下到.(具体搜一下windows s

abdgnhtyry的专栏 672

控制科学与工程(自动化)保研经验【1】——预备篇

个人情况 学校:中末流211 专业:自动化(学科评估B-) 年份:2019 排名:4/128 绩点:4.16/5 竞赛:三个国二(包括数模国赛美赛)、两个省一(机器人、电子设计竞赛) 【本科期间竞赛做的比较多,是我的一大亮点,可以在筛简历这关适当弥补专业排名的不足】 科研:一个校级的大创项目(水) 夏令营报名:中科大科学岛、中科大本部、自动化所、沈自所、北航(仪器17系)、山大、浙江大学、南开、同...

Control Everything 1万+
上一篇: 取消全屏后黑屏解决方案
下一篇: MAC OS tcpdump无法使用解决方案 & 如何启用 root 用户
sheltonwan
博客等级 码龄20年 77粉丝 79原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值