读书人

Function needs result type 明明有 r

发布时间: 2012-07-23 09:42:19 作者: rapoo

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. 

读书人网 >.NET

热点推荐