这里有一部分内容是在网上摘录的,即GDI+在BCB中的使用规则
---------------------------------------------------------------------------------------------------------------------
GDI+在BCB中使用的方法:
1、建立编译链接环境:GDI+主要是通过gdiplus.dll进行调用,而BCB没有直接提供与
gdiplus.dll对应的静态链接库,所以需要我们自己建立。如果在自己的计算机没有找
到文件gdiplus.dll,可以到微软的官方网站进行下载。然后复制一份到自己的工程目
录中,然后使用BCB提供的工具implib生成对应的静态链接库:
implib gdiplus.lib gdiplus.dll
2、将新生成的gdiplus.lib文件COPY到BCB的\lib目录下,然后切记要把gdiplus.lib
添加到工程中(使用"Project->Add to project..."命令)。或者用由文件自动加入
到工程中。
3、修改编译选项:打开BCB菜单"Project->Options"和"Directories/Conditionals"
页,在"Conditionals defines:"中添加“STRICT”编译选项,如果有多项则需要用分
号";"进行分隔。而这个选项也可以通过 #define STRICT 指令直接加到文件中。
4、在.cpp文件中的语句“#pragma hdrstop”后加入以下内容:
#i nclude <algorithm>
using std::min;
using std::max;
5、在.cpp文件中的语句块“#pragma package(smart_init)...”后加入以下内容:
using namespace Gdiplus;
6、最后注意引入GDI+的头文件,注意这个头文件必须放在 VCL.H 和相关的头文件的后
面,否则会在 BCB6 中产生编译错误:
#i nclude <Gdiplus.h>
注意:
本文件应该在BCB5和BCB6中都能正常使用,BCB5没有GDI+的包含文件,所以要手工
添加它们。这些文件可以从BCB6中COPY,也可以从可下载微软的SDK中获取。
---------------------------------------------------------------------------------------------------------------------
任何引用了Gdiplus.h内容的代码文件都必须遵守上面的规则,否则会产生许多乱七
八糟的编译错误。
然而,使用这些规则非常麻烦,所以本人做了一个头文件,直接用包含指令“include” ,插到你的C++源文件中就可以使用 GDI+ 了。
但是编译时还是会产生错误,这个错误不好说是哪家的问题。但是我为此修改了 GDI+ 的定义文件,使 BCB 编译可以顺利通过。这些问题是由于GDI+的定义文件使用了缺省参数的构造函数造成的,所以不要冒险使用缺省值,否则可能会调错了函数。
目前时间紧张,不能对GDI+的定义文件做出大改动。等有了空闲时间,对GDI+的定义文件重新修改打包,让它完全兼容BCB系统。
我做的头文件“TGdiplus.hpp”、修改的GDIPLUS定义文件、Gdiplus.lib文件、还有一个演示文件的工程源代码请到此下载。