在C++ Builder中调用Windows应用程序 一般，Windows程序员在编写Windows程序时，为了降低编程的难度和缩短编程的时间，经常会调用各种Windows资源，如画笔，写字板等资源。对于其他的程序设计语言，我们一般使用API函数来实现着一功能，那么在Borland C++ builder 上我们又如何实现呢？ 现以使用API函数调用Windows画笔为列，把该方法介绍如下： 1.启动C++ builder进入菜单“File”、“New application”创建一个新项目，将该项目存盘，得到含有一个主窗口的项目。在主窗口上添加一个打开图片对话框控件OpenPictureDialog1和按扭控件Button1。
2.在主文件的文件头添加#include <ShellApi.h>。
3.在头文件的private 处添加 char BmpExec[100]。
4.在Button1的OndbClick事件处添加如下代码：
void_fastcall TMainForm1::Button1Click(TObject *Sender)
{
AnsiString TempName;
FileClose(FileCreate("testest.bmp"));
FindExecutable("testest.bmp",NULL,BmpExec);
//返回可执行文件名的句柄//
DeleteFile("testest.bmp"); //删除文件//
OpenPictureDialog1->DefaultExt = String("BMP");
OpenPictureDialog1->Filter ="图片文件(*.bmp)|*.bmp";
OpenPictureDialog1->FileName="*.bmp";
if (OpenPictureDialog1->Execute())
{
if (OpenPictureDialog1->FileName.AnsiPos(".")<1)
OpenPictureDialog1->FileName=OpenPictureDialog1->FileName+".BMP";
//给没有扩展名的文件加上扩展名，此时FileName为文名的全名//
CloseHandle(CreateFile(OpenPictureDialog1->FileName.c_str(),
//参数1 为文件名//
GENERIC_WRITE,
//参数2 文件的访问模式：设置为文件可写并且文件指针//
FILE_SHARE_WRITE,
//参数3 文件的共享模式：如果写访问允许文件可被修改//
NULL,
//参数4 安全属性： 用缺省的操作符//
OPEN_ALWAYS,
//参数5 如果文件不存在，如何创造文件：设置为存在则打开，如不存在则新建//
FILE_ATTRIBUTE_NORMAL,
//参数6，文件的属性和标志，文件没有其他的属性//
));//关闭打开的事物句柄//
//以上的代码使文件设置为共享，从而使下面的代码顺利执行//
TempName=AnsiString(BmpExec);
//把char 转换成AnsiString//
TempName=TempName+" "+OpenPictureDialog1->FileName; //应用程序名+相应的被处理文件//
WinExec(TempName.c_str(),SW_SHOWNORMAL);
//执行应用程序//
}
}
5.编译执行。当双激按扭Button1时，程序出现打开图片文件的对话框，选则要打开的bmp文件，便可以调用windows的画笔打开自己选定的bmp文件了。
（孙航东）