2009-08-19 3 views
2

저는 Enterprise Architect 코드 생성 기능을 사용하여 모델을 Delphi 코드로 내보내고 있습니다. EA에서 인터페이스 GUID를 지정하여 인터페이스가 출력 코드에 완전히 정의되도록하는 방법이 있습니까?Enterprise Architect에서 Delphi 인터페이스 GUID를 지정하는 방법은 무엇입니까?

예 :

ILogger = interface 
    procedure Log(AMessage: ILoggerMessage); 
end; 

ILogger = interface 
['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}'] 
    procedure Log(AMessage: ILoggerMessage); 
end; 

답변

1
델파이가 좋아하는 당신은 형태로 GUID를 포함하는 값으로하는 ILogger의 태그에 특성 추가해야

:

Attribute=['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}'] 

당신은 코드 생성 템플릿 클래스 바디을 수정하고 (elemType는 "인터페이스"%를 == 경우 % 이후이어야 함)두 번째 라인으로

%classTag:"Attribute"% 

을 추가해야합니다이제 EA는 GUID로 코드를 올바르게 생성해야합니다. EA는 올바르게 가져 오지만 제대로 생성되지 않습니다.

이것은 인터페이스에 대한 빠른 수정입니다. Delphi에서 프로그래밍 한 이후 오랜 시간이 걸렸으므로 클래스에도 이러한 특성이있을 수 있는지 잘 모르겠습니다. 따라서 솔루션은 인터페이스로 제한됩니다.

2

번호 델파이는 모든 인터페이스를 가지고해야 당신이하는 GUID 여부를해야합니다 여부를 모르고있다이어야한다. (COM을위한 것이 아니며 IDispatch를 구현하지 않는 인터페이스.) IDE는 당신의 마음을 읽을 수 없지만 (미래에는 희망이있을 수 있음), 어떤 유형의 인터페이스를 사용할 지 알 수 없습니다. 창조에 대한 계획.

0

EA는 COM 프로그래밍에서와 같이 인터페이스가 지원되지 않는 것으로 보입니다. 그러나, 당신은 ... 코드가 생성되는 방식을 변경하기 위해 템플릿 편집 기능을 사용하여 시도 할 수 있습니다

관련 문제