如何在Delphi中寻找一些API在哪个unit里(50分)

  • 主题发起人 主题发起人 oldzhou
  • 开始时间 开始时间
O

oldzhou

Unregistered / Unconfirmed
GUEST, unregistred user!
我从VC里转过来用Delphi,觉得Delphi确实不错,但美中不足的是帮助文档
作的不太友好,恐怕有点不太相称。比如,我在试编一个cdplayer的小程序
时,发现MCI_TMSF_MINUTE这个API,Delphi不认,我想大概没有use 哪个
unit的原因吧。希望大侠助我一臂之力,顺便告诉我如何才能知道哪个API是
在哪个unit里。
 
你可以在Delphi编辑器中键入函数名, 按F1, 在帮助中查看Quick Info (顶部)
 
这样:
1.打开菜单: Search/Find in Files
2.键入API名字
3.选定目录: e:/Borland/Delphi4/Source
4.选择包括子目录查询
5.开始Find,找到文件后把文件名作为Unit名字就可以了.

对于在Delphi中未声明的API,可以参考下面的声明:
const
RSP_SIMPLE_SERVICE = $00000001;
RSP_UNREGISTER_SERVICE = $00000000;
// Parameter dwProcessId can be 0, same effect as GetCurrentProcessId
// Return Values: True(1) means success
function RegisterServiceProcess(dwProcessId, dwServiceType: DWord): Bool;
stdcall;
// Place in "implementation" session
function RegisterServiceProcess;
external 'Kernel32.dll' Name 'RegisterServiceProcess';
// Example:
// RegisterServiceProcess(0, RSP_SIMPLE_SERVICE);
// RegisterServiceProcess(0, RSP_UNREGISTER_SERVICE);
 
DELPHI 的帮助文档的确做的不太好。
你可以用资源管理器来在你的 DELPHI 目录的 Source 子目录下
查找包含这个 API 声明的 .dcu 文件,该文件名就是这个 API 函数
所在的 Unit,把它加入 Uses 域中就行了。
还有,我没有用过 DELPHI 1.0 和 2.0 版,而我的
《Delphi 程序设计(1.0 和 2.0 版)》上说,
所有的 Windows API 函数都定义在 WinProcs 单元内,
而所有的数据结构都定义在 WinTypes 单元内,不知对不对,仅供参考。
 
DELPHI中可调用的WindowsAPI在
C:/Program Files/Borland/Delphi4/Source/Rtl/Win目录下的文件中。
jacer所说的DELPHI1.0和2.0中
“所有的 Windows API 函数都定义在 WinProcs 单元内,
而所有的数据结构都定义在 WinTypes 单元内”是对的,
但3.0和4.0把WinProcs和WInTypes合二为一放在 Windows单元中,
但有些API并不在其中,如外壳函数定义在shellapi单元中。
 
MCI指令是在mmsystem.pas中
其他的api在windows.pas中
 
看一看rtl/win下的文件名就知道了,DELPHI整理的API是很有规律的。
 
多人接受答案了。
 
后退
顶部