一个小问题,高手来拿分(50分)

  • 主题发起人 主题发起人 zhengjunfeng
  • 开始时间 开始时间
Z

zhengjunfeng

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟以前编程序如下:写的api调用从不用引入什么其他unit,编译的时候可能自动的加进入了。<br>var<br>&nbsp; &nbsp; &nbsp; &nbsp;ip:array [1..128] of char;<br>begin<br>&nbsp; &nbsp; &nbsp; &nbsp;gethostname(pchar(@ip[1]), 127); //取得本机name<br>end; &nbsp;<br><br>可是重装了以后,不知什么设置改了,必须自己手工添加,这样查找它所在<br>的unit的也太麻烦了,不知道哪个大峡知道这个设置吗?<br>这样写起来太不方便了。<br><br>而且,我自己添加 winsock单元后,居然让我WSAStartup,我记得以前根本不用写的啊?<br>帮帮忙吧!
 
看不懂你想干什么?<br><br>取得本地计算机的名字:<br>&nbsp; Windows 95 API: GetComputerName<br>&nbsp; 取得本地登录用户名:GetUserName<br><br>取得本地ip地址:<br>function LocalIP : string;<br>type<br>&nbsp; &nbsp; TaPInAddr = array [0..10] of PInAddr;<br>&nbsp; &nbsp; PaPInAddr = ^TaPInAddr;<br>var<br>&nbsp; &nbsp; phe &nbsp;: PHostEnt;<br>&nbsp; &nbsp; pptr : PaPInAddr;<br>&nbsp; &nbsp; Buffer : array [0..63] of char;<br>&nbsp; &nbsp; I &nbsp; &nbsp;: Integer;<br>&nbsp; &nbsp; GInitData &nbsp; &nbsp; &nbsp;: TWSADATA;<br><br>begin<br>&nbsp; &nbsp; WSAStartup($101, GInitData);<br>&nbsp; &nbsp; Result := '';<br>&nbsp; &nbsp; GetHostName(Buffer, SizeOf(Buffer));<br>&nbsp; &nbsp; phe :=GetHostByName(buffer);<br>&nbsp; &nbsp; if phe = nil then Exit;<br>&nbsp; &nbsp; pptr := PaPInAddr(Phe^.h_addr_list);<br>&nbsp; &nbsp; I := 0;<br>&nbsp; &nbsp; while pptr^ &lt;&gt; nil do begin<br>&nbsp; &nbsp; &nbsp; result:=StrPas(inet_ntoa(pptr^^));<br>&nbsp; &nbsp; &nbsp; Inc(I);<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; WSACleanup;<br>end;<br><br>记得<br>&nbsp;uses Winsock; <br>
 
好像我也出过这样的问题,再重装一遍就好了.-----------原因不知道!!!
 
to wjiachun:<br>&nbsp; &nbsp;我拿getlocalhost只是做个例子,以前我写api的时候,编译的时候系统自动<br>加上了所要的单元,现在居然要我手工加,这么多api,我怎么查到底在哪个unit里?<br><br>我估计是环境设置的问题!
 
&gt;&gt;以前我写api的时候,编译的时候系统自动加上了所要的单元<br><br>你以前的系统真牛!!现在和大家一样正常了
 
肯定是你记错了,除非你用的是已经安装好的控件,要不你调用其他单元的东西一定要<br>自己添加单元,api在shellapi单元中
 
朋友,API函数的声明都在 /Borland/Delphi5/Source/Rtl/Win<br>目录下,你可以在这个目录寻找你所有的API,不过常用的API大都声明<br>在Windows.pas,ShellAPI.pas文件里。我还可以告诉你API位于哪几个dll里<br>高级编程接口函数Advapi32.dll、图形界面函数GDI32.dll、内核库函数<br>Kernel32.dll、装入解压缩文件库函数LZ32.dll、网络接口函数MPR.dll、<br>用户库函数User32.dll、版本库函数Version.dll、多媒体库函数WinMM.dll、<br>打印管理库函数Winspool.dll、公共对话库函数ComDlg32.dll。其中User32.dll最<br>为常用。<br>我认为只有当从整体上把握API函数,才能更好地利用API函数,只凭记忆几个<br>API函数那是万万不够的。<br>不知我上面一席话对诸位有否帮助?
 
接受答案了.
 
可能是你的delphi版本的问题,我调用API的时候,也没有写过uses的东西,<br>你找个正版的试试吧!
 
后退
顶部