다음은 구문이 올바로 보이고 잘 컴파일됩니다.인터페이스가없는 함수
unit MyAPI;
interface
// function Min(X, Y: Integer): Integer;
// function Max(X, Y: Integer): Integer;
implementation
function Min(X, Y: Integer): Integer;
begin
if X < Y then Min := X else Min := Y;
end;
function Max(X, Y: Integer): Integer;
begin
if X > Y then Max := X else Max := Y;
end;
end.
저는 50 가지 이상의 기능, 일반적으로 건물중인 동적 라이브러리의 facade 기능에 대해 동일한 작업을 수행하고 싶습니다. 이 50 개의 함수는 모두 작은 몸체를 가지고 있으며 내부 코드를 호출 한 다음 출력 DLL을 통해 C 스타일 호출에 대한 데이터를 변환합니다.
이런 이유로 나는 인터페이스 부분을 작성하는 것이 경제적이되고 싶습니다.
unit MyAPI;
interface
uses Optimizer;
implementation
function Min(X, Y: Integer): Integer;
var
optimizer: TOptimizer;
begin
optimizer := TOptimizer.Create;
Min := optimizer.Min(X,Y);
end; stdcall;
...
end.
괜찮습니까? 다른 옵션은 무엇입니까?
그렇다면 인터페이스 코드를 작성하고 싶지 않습니까? 괜찮습니다. 함수가 정의 된 유닛의 외부에서 보이지 않을 것입니다. –
'Min'과'Max'는 이미'Math' 유닛에서 선언되었습니다. RTL 유틸리티의 중복을 피하십시오. –
@LURD - 그 개념을 보여주는 예라고 생각합니다. –