首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Enterprise Architect中指定Delphi接口GUID?

如何在Enterprise Architect中指定Delphi接口GUID?
EN

Stack Overflow用户
提问于 2009-08-19 14:58:21
回答 3查看 737关注 0票数 2

我正在使用Enterprise Architect代码生成功能将我的模型导出为Delphi代码。有没有办法在EA中指定接口GUID,以便在输出代码中完全定义接口?

示例:

代码语言:javascript
复制
ILogger = interface
  procedure Log(AMessage: ILoggerMessage);
end;

应该是

代码语言:javascript
复制
ILogger = interface
['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}']
  procedure Log(AMessage: ILoggerMessage);
end;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-20 22:45:14

您应该将包含GUID的值添加到ILogger TaggedValue属性中,格式为Delphi喜欢的:

代码语言:javascript
复制
Attribute=['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}']

然后,您应该修改代码生成模板类主体并添加

代码语言:javascript
复制
%classTag:"Attribute"%

作为第二行(应该在%if elemType ==“==”%之后),EA现在应该正确地生成带有GUID的代码。EA可以很好地导入它,但无法正确生成。

这只是一个接口的快速修复,自从我用Delphi编程以来已经很长时间了,所以我不确定类是否也有这样的属性,因此解决方案仅限于接口,目前:)。

票数 1
EN

Stack Overflow用户

发布于 2009-08-19 19:36:31

不是的。Delphi不知道您是否需要GUID,因为不是所有接口都必须有GUID。(例如,不是为COM设计的接口,也不实现IDispatch。)IDE不能读懂你的想法(也许未来还有希望),也不能知道你打算创建什么类型的界面。

票数 2
EN

Stack Overflow用户

发布于 2009-08-20 19:18:06

EA似乎不支持COM编程中的接口。但是,您可以尝试使用模板编辑功能来更改代码生成的方式……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1300510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档