DELPHI如何调用WINDOWS API(100分)

  • 主题发起人 wangdazhi
  • 开始时间
W

wangdazhi

Unregistered / Unconfirmed
GUEST, unregistred user!
听说DELPHI已经把WINDOWS API封装载在其中,但我至今仍不知如何调用,<br>请高人指教.
 
直接用啦!和DELPHI中其它的函数一样用。
 
看看windows.pas吧,M$公布的API大部分都在里面呢。<br>还有一些在source/rtl下的其它目录或pas中。<br>uses之后就象menxin所述,直接用啦!
 
三个主要的dll:user32.dll,gdi32.dll,kernel32.dll<br>中的API已经包含在windows.pas中,可以直接用,<br>其他的API则要包含其相应的声明,可以到Delphi/sourse/<br>去找相应的pas文件。
 
直接用啦!<br>比如zeroMemory,Bitblt...<br>BMP=TBitmap.create(nil);<br>ZeroMemory(BMP.bits,BMP.size);<br>就把一个BMP图形清空了
 
这可是DELPHI的几大特点之一啊,怎么忘了? &nbsp; &nbsp;:)
 
大部分可以直接用, 还可以用<br>function RasGetConnectStatus; external 'rasapi32.dll' name 'RasGetConnectStatusA';<br>来调用没有声明的api.
 
绝大部分的API都可以直接用.
 
大部分可以直接调用(封装在为了windows单元)比vb强多了<br>个别需要自己加单元,如shellapi,<br>但windows单元是默认加上的<br>你可以直接调用
 
有冲突的,前面加windows <br>如 &nbsp;windows.setparent(child.handle,self.handle);
 
对于delphi中不能直接使用的应先声明入:RegisterServiceProcess就不能直接使用,故作如下声明,具体视情况定<br>function &nbsp;RegisterServiceProcess(dwProcessID:DWORD; dwType:dword):boolean;stdcall;external 'KERNEL32.dll' name<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'RegisterServiceProcess';<br>
 
to Liu JZX:<br>&nbsp; RegisterServiceProcess对win9x好用.NT出错!!!<br><br>
 
多谢大家的提携.我好感动呦!
 
如果你以前用过VB编程的话,对于使用Delphi的API就比较快<br>Delphi的许多API函数名与VB的相同,所不同的是在Delphi中<br>有许多的数据类型与VB的不一样,需要你自己转换。<br>这样的话,Delphi就可以大量使用VB的资料了。<br>举个例子,得到系统的路径用Delphi是<br>var<br>&nbsp; MySysPath : PCHAR ;<br>begin<br>&nbsp; GetMem(MySysPath,255);<br>&nbsp; GetSystemDirectory(MySysPath,255);<br>end;<br>用VB是<br>Dim buffer As String * 255<br>x = GetSystemDirectory(buffer, 255)<br>只是形式的不同,很多东西是相同的,可能Delphi也考虑到了与VB的一些程序员使用
 
&gt;&gt;Delphi的许多API函数名与VB的相同,所不同的是在Delphi中有许多的数据类型与VB的不一样<br><br>呵呵,API当然是同名的,类型不同也是因为语言之间的差异啊。
 
&gt;&gt;Delphi的许多API函数名与VB的相同<br>????难道还有别的不同的函数名吗? API都一样啊!
 
大部分api函数可在dephi中直接调用,<br>如果你已知道要调用的函数名,输入并选定后按F1,帮助很详细。<br>关键在于参数的调用与windows数据类型的理解。
 
各位大虾回答的已经相当详细了,我再关于帮助的问题罗嗦一些!<br>需要使用shellapi的f1无法显示帮助,但是在程序组里面的<br>Borland Delphi 4/Help/MS SDK Help Files里面的第一项会看<br>到的。例如shellnitifyicon()就要这样了,当然如果你的hd比<br>较big那么就安装一个vc with msdn,well这样的帮助相当的详细<br>如果在delphi里面的化在uses shellapi上按住ctrl单击鼠标,然<br>后就非常详细了!
 
你要在uses中加入shellapi单元,编程时才可调用你需要的api。
 
有些有加入 uses shellapi 如 shellexecute;<br>而想 copyfile 则不同
 
顶部