在PB中调用Win32 API函数的经验 陈跃氢 2001年 44期 PowerBuilder系统自身虽然提供了大量的函数,但对于一些诸如获得系统参数、控制线程等系统底层功能,就无能为力了。这是因为PowerBuilder语言主要是针对数据库应用的开发工具,并不像Visual C++或其它语言主要针对Windows开发,在调用Windows的功能方面较强。为了弥补PowerBuilder这方面的劣势,可调用Win32 API函数来完成某些特殊的功能。   由于PowerBuilder不会通知用户在Win32 API的DLL/EXE文件不存在所调用的函数,或者在语句的编译期间调用不正确,相反,用户只会得到在运行时出现的含糊的错误提示,初学者往往无所适从。因此,在调试时必须注意如下两点基本事项:   首先,注意声明外部函数时函数名称的字母大小写。由于PowerBuilder系统与绝大多数程序设计语言一样,对于语句和函数并不在乎字母的大小写,所以,在编程时,往往也忽略了在声明外部函数时函数名称的字母大小写形式。如Win32 API中的拷贝函数CopyFileA,若在声明外部函数时写成Copyfilea,则在运行时提示调用错误。但在程序语句中不论自身的函数还是外部函数,函数名称均与字母大小写形式无关。这是很多初学者不易察觉的错误。   其次,为使PowerBuilder应用在Windows环境下正常运行,DLL应放在下列目录之中:   1.当前目录;   2.Windows目录;   3.Windows System目录;   4.在DOS的路径中包括的目录。   在程序设计时,有时按照参考资料在声明外部函数时原原本本地敲入,但在运行时仍提示调用错误,在排除其它可能后应该怀疑声明外部函数的字母大小写是否存在印刷错误。在这里介绍一个简单的验证方法:用Word2000打开相应的DLL/EXE文件,然后搜索此函数的名称,若存在则可看到此函数的正确名称的字母大小写方式。