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;begin { TODO -oUser -cConsole Main : Insert code here } Writeln('请输入第一个数'); readln(i); Writeln('请输入第二个数'); readln(j); Write('结果为:'+ IntToStr(Add(i,j)));end.