
delphi编译出现Could not compile used unit ‘FunAndProc.pas’
以下是单元的代码,我看不出哪里出错了啊。unitFunAndProc;interfaceusesWindows,Classes,SysUtils;constDefPort...
以下是单元的代码,我看不出哪里出错了啊。
unit FunAndProc;
interface
uses Windows, Classes, SysUtils;
const
DefPort = 5643;
KEY_Clt: array [1..4] of string =
('AskForFielsName',
'AskForFilesLength',
'AskForFilesData',
'WantToDisconnect');
KEY_Srv: array [1..2] of string =
('Return1',
'Return2');
FilesNameSepStr = '|';
FilesLengthSepStr = ',';
function StringToStringS(SepStr: String; S: String): TStrings;
function StringsToString(SepStr: String; StrS: TStrings;
GetFileName:Boolean = False): String;
function Get_ComputerName: string;
implementation
function StringToStringS(SepStr: String; S: String): TStrings;
var
P: Integer;
begin
Result := TStringList.Create ;
P := Pos(SepStr,S);
while P <> 0 do
begin
Result.Add(Copy(S,1,P-1));
Delete(S,1,P-1+Length(SepStr)); //P-1是字符长度,Length(SepStr)是分隔字符长度
P := Pos(SepStr,S);
end;
Result.Add(s);
end;
function StringsToString(SepStr: String; StrS: TStrings;GetFileName:Boolean = False): String;
var
I: Integer;
begin
Result := '';
for I := 0 to StrS.Count -1 do
begin
if not(GetFileName) then
Result := Result + SepStr + StrS[I]
else
Result := Result + SepStr + ExtractFileName(StrS[I]);
end;
Delete(Result,1,1);
end;
function Get_ComputerName: string;
var
P_CName: PChar;
P_CSize: LongWord;
begin
P_CSize := MAX_COMPUTERNAME_LENGTH + 1;
GetMem(P_CName,P_CSize);
GetComputerName(P_CName,P_CSize);
Result := P_CName;
FreeMem(P_CName);
end;
end.
[Fatal Error] ServerThread.pas(35): Could not compile used unit 'FunAndProc.pas'
[Pascal Error] ServerDownLoad.pas(1): Unable to invoke Code Completion due to errors in source code 展开
unit FunAndProc;
interface
uses Windows, Classes, SysUtils;
const
DefPort = 5643;
KEY_Clt: array [1..4] of string =
('AskForFielsName',
'AskForFilesLength',
'AskForFilesData',
'WantToDisconnect');
KEY_Srv: array [1..2] of string =
('Return1',
'Return2');
FilesNameSepStr = '|';
FilesLengthSepStr = ',';
function StringToStringS(SepStr: String; S: String): TStrings;
function StringsToString(SepStr: String; StrS: TStrings;
GetFileName:Boolean = False): String;
function Get_ComputerName: string;
implementation
function StringToStringS(SepStr: String; S: String): TStrings;
var
P: Integer;
begin
Result := TStringList.Create ;
P := Pos(SepStr,S);
while P <> 0 do
begin
Result.Add(Copy(S,1,P-1));
Delete(S,1,P-1+Length(SepStr)); //P-1是字符长度,Length(SepStr)是分隔字符长度
P := Pos(SepStr,S);
end;
Result.Add(s);
end;
function StringsToString(SepStr: String; StrS: TStrings;GetFileName:Boolean = False): String;
var
I: Integer;
begin
Result := '';
for I := 0 to StrS.Count -1 do
begin
if not(GetFileName) then
Result := Result + SepStr + StrS[I]
else
Result := Result + SepStr + ExtractFileName(StrS[I]);
end;
Delete(Result,1,1);
end;
function Get_ComputerName: string;
var
P_CName: PChar;
P_CSize: LongWord;
begin
P_CSize := MAX_COMPUTERNAME_LENGTH + 1;
GetMem(P_CName,P_CSize);
GetComputerName(P_CName,P_CSize);
Result := P_CName;
FreeMem(P_CName);
end;
end.
[Fatal Error] ServerThread.pas(35): Could not compile used unit 'FunAndProc.pas'
[Pascal Error] ServerDownLoad.pas(1): Unable to invoke Code Completion due to errors in source code 展开
2个回答
展开全部
单元名和文件名要求一致。
如果使用funandproc,那么代码第一行应该是Unit funandproc;
这个文件应保存为funandproc.pas
而不是serverthread.pas
总之要统一
如果使用funandproc,那么代码第一行应该是Unit funandproc;
这个文件应保存为funandproc.pas
而不是serverthread.pas
总之要统一
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询