Function needs result type 明明有 result.该如何解决

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 .......对不起大家...麻烦大家了....








------解决方案--------------------
方法声明的位置不对。
见下面例子,嘿嘿

program ConsoleMain;

{$APPTYPE CONSOLE}

uses
  SysUtils,Dialogs;

  function Add(A,B:Integer):Integer;
  begin
    Result := A + B;
  end;

  var
    i,j: Integer;