首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Function needs result type 明明有 result.解决办法

2012-07-23 
Function needs result type 明明有 result...program Project1{$APPTYPE CONSOLE}usesSysUtils, winsock

Function needs result type 明明有 result...
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, winsock;

begin
Function GetNetIP2(vDoMainName:String):String;
var
  HostEnt: PHostEnt;
  InAddr: TInAddr;
begin
  HostEnt := GetHostByName(pAnsichar(AnsiString(vDoMainName))); //这是主要用到的WINAPI函数
  FillChar(InAddr, SizeOf(InAddr), 0);
  if HostEnt <> nil then
  begin
  with InAddr, HostEnt^ do
  begin
  S_un_b.s_b1 := h_addr^[0];
  S_un_b.s_b2 := h_addr^[1];
  S_un_b.s_b3 := h_addr^[2];
  S_un_b.s_b4 := h_addr^[3];
  end;
  end;
  Result:=Inttostr(Ord(InAddr.S_un_b.s_b1))+'.'+Inttostr(Ord(InAddr.S_un_b.s_b2))+'.'+Inttostr(Ord(InAddr.S_un_b.s_b3))+'.'+Inttostr(Ord(InAddr.S_un_b.s_b4));
end;

Function GetNetIP(vDoMainName:String):String;
var
  CWS:TCustomWinSocket;
  vInadd:TInAddr;
  I:Integer;
begin
  CWS:=TCustomWinSocket.Create(INVALID_SOCKET);
  I:=0;
  While (vInadd.S_addr=0) and (I<10) do
  begin
  vInadd:=CWS.LookupName(vDoMainName);
  Inc(I);
  end;
  Result:=Inttostr(Ord(vInadd.S_un_b.s_b1))+'.'
  +Inttostr(Ord(vInadd.S_un_b.s_b2))+'.'
  +Inttostr(Ord(vInadd.S_un_b.s_b3))+'.'
  +Inttostr(Ord(vInadd.S_un_b.s_b4));
end;
  try
  { TODO -oUser -cConsole Main : Insert code here }
  except
  on E: Exception do
  Writeln(E.ClassName, ': ', E.Message);
  end;
end.




Checking project dependencies...
Compiling Project1.dproj (Debug configuration)
[DCC Error] Project1.dpr(9): E2023 Function needs result type
[DCC Error] Project1.dpr(14): E2003 Undeclared identifier: 'vDoMainName'
[DCC Error] Project1.dpr(29): E2023 Function needs result type
[DCC Error] Project1.dpr(31): E2003 Undeclared identifier: 'TCustomWinSocket'
[DCC Error] Project1.dpr(35): E2066 Missing operator or semicolon
[DCC Error] Project1.dpr(39): E2066 Missing operator or semicolon
[DCC Error] Project1.dpr(39): E2003 Undeclared identifier: 'vDoMainName'



这些问题蛋疼,不会 console application .......对不起大家...麻烦大家了....









[解决办法]
方法声明的位置不对。
见下面例子,嘿嘿

Delphi(Pascal) code
program ConsoleMain;{$APPTYPE CONSOLE}uses  SysUtils,Dialogs;  function Add(A,B:Integer):Integer;  begin    Result := A + B;  end;  var    i,j: Integer;begin  { TODO -oUser -cConsole Main : Insert code here }  Writeln('请输入第一个数');  readln(i);  Writeln('请输入第二个数');  readln(j);  Write('结果为:'+ IntToStr(Add(i,j)));end. 

热点排行