//GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API),这是SDK的中文翻译版本。WORD格式。 //目标 //Microsoft Windows GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API)。它使得程序可以同时在视频显示器和打印机上使用图形和格式化文本。基于Microsoft Win32的应用程序不能直接访问图形硬件,而是通过GDI+来协调设备驱动和程序动作的交互。GDI+同样支持Microsoft Win64。//适用范围 //GDI适用于所有的Window应用程序。GDI+是包含于Windows XP和Windows Server 2003中的一项新技术。运行于Microsoft Windows NT 4.0 SP6、Windows 2000、Windows 98 和 Windows Me操作系统的应用程序在分发的时候需要包含GDI+。//适用读者 //GDI+ C++ 基类接口是为C/C++开发者所设计。需要精通Windows图形用户接口和消息驱动机制。//运行环境 //Gdiplus.dll包含在Windows XP中。某些特定的类和方法可能需要特定操作系统的支持,请参阅文档中相应的类和方法。GDI+可以在Windows NT 4.0 SP6、 Windows 2000、 Windows 98以及 Windows Me操作系统中重新分发部署。下载最新的可重新分发安装包,参见:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm //注意:如果您将GDI+分发到低版本系统平台或者该平台本身不包含该版本的GDI+,则将Gdiplus.dll安装到您的应用程序目录下。这样将它放到了您自己的地址空间下,但是您应该使用/BASE连接器选项重构基地址,避免地址空间冲突。 看上面的说明:gdi+再厉害也只是C++的库,只要这个库在gdi+就能运行(Win32 可能不包括CE) 所以楼主不用去考虑什么支持不支持的 只要你程序自己带上了gdi+的支持就行了。 所以 建议程序打包的时候把GDI+的DLL lib 等打进安装包就可以了。
HMODULE hMod = LoadLibrary("gdiplus.dll");
if (hMod)
{
//有此DLL
}
else
{
//没有此DLL
}
动态加载,LoadLibrary(),如果找不到,返回句柄无效,就是不支持
//GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API),这是SDK的中文翻译版本。WORD格式。
//目标
//Microsoft Windows GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API)。它使得程序可以同时在视频显示器和打印机上使用图形和格式化文本。基于Microsoft Win32的应用程序不能直接访问图形硬件,而是通过GDI+来协调设备驱动和程序动作的交互。GDI+同样支持Microsoft Win64。//适用范围
//GDI适用于所有的Window应用程序。GDI+是包含于Windows XP和Windows Server 2003中的一项新技术。运行于Microsoft Windows NT 4.0 SP6、Windows 2000、Windows 98 和 Windows Me操作系统的应用程序在分发的时候需要包含GDI+。//适用读者
//GDI+ C++ 基类接口是为C/C++开发者所设计。需要精通Windows图形用户接口和消息驱动机制。//运行环境
//Gdiplus.dll包含在Windows XP中。某些特定的类和方法可能需要特定操作系统的支持,请参阅文档中相应的类和方法。GDI+可以在Windows NT 4.0 SP6、 Windows 2000、 Windows 98以及 Windows Me操作系统中重新分发部署。下载最新的可重新分发安装包,参见:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm
//注意:如果您将GDI+分发到低版本系统平台或者该平台本身不包含该版本的GDI+,则将Gdiplus.dll安装到您的应用程序目录下。这样将它放到了您自己的地址空间下,但是您应该使用/BASE连接器选项重构基地址,避免地址空间冲突。
看上面的说明:gdi+再厉害也只是C++的库,只要这个库在gdi+就能运行(Win32 可能不包括CE) 所以楼主不用去考虑什么支持不支持的 只要你程序自己带上了gdi+的支持就行了。 所以 建议程序打包的时候把GDI+的DLL lib 等打进安装包就可以了。
还是自己带上吧。
讨论范围不限:分布式系统构架,服务器集群,客户端开发,图形图像。
2.如果不想打包,想根据系统环境来判断是否支持,可以采用下面的方法
BOOL IsSupportGDIPlus()
{
HMODULE hMod = ::LoadLibrary(_T("gdiplus.dll"));
if (NULL != hMod)
{
::FreeLibrary(hMod);
} return (NULL != hMod);
}
但是这个检测要在最前面执行,也就是调用任何GID+函数的最前面,确保检测时未曾调过GDI+函数。
3.在工程设置中设置gdiplus.dll为延迟调用VS05/08中,工程设置->配置属性->链接器->输入->延迟加载的DLL这样你的程序就可以实现你的要求了。