2013-09-28 35 views
1

出于某种原因,该代码产生以下错误:帕斯卡尔图书馆编译错误

“致命:语法错误,‘BEGIN’,但却‘标识TESTQ’发现”

library test; 

procedure testp; 
begin 

end; 

procedure testq; 
begin 

end; 

exports 
    testp; 
    testq; 
end. 

下面是一些示例代码这并编译我发现这里:http://www.freepascal.org/docs-html/prog/progse54.html

library subs; 

function SubStr(CString: PChar;FromPos,ToPos: Longint): PChar; cdecl; 

var 
    Length: Integer; 

begin 
    Length := StrLen(CString); 
    SubStr := CString + Length; 
    if (FromPos > 0) and (ToPos >= FromPos) then 
    begin 
    if Length >= FromPos then 
     SubStr := CString + FromPos - 1; 
    if Length > ToPos then 
    CString[ToPos] := #0; 
    end; 
end; 

exports 
    SubStr; 

end. 

我已经认识到,每当我使用一个以上的函数,过程,或者两者的结合,它抛出这个SAM e出口部分的错误。为什么会发生这种情况,我怎样才能避免它发生?

回答

2

exports列表应该用逗号分隔,而不是:

exports 
    testp, 
    testq; 

end.