我正在使用Enterprise Architect代码生成功能将我的模型导出为Delphi代码。有没有办法在EA中指定接口GUID,以便在输出代码中完全定义接口?
示例:
ILogger = interface
procedure Log(AMessage: ILoggerMessage);
end;应该是
ILogger = interface
['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}']
procedure Log(AMessage: ILoggerMessage);
end;发布于 2009-08-20 22:45:14
您应该将包含GUID的值添加到ILogger TaggedValue属性中,格式为Delphi喜欢的:
Attribute=['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}']然后,您应该修改代码生成模板类主体并添加
%classTag:"Attribute"%作为第二行(应该在%if elemType ==“==”%之后),EA现在应该正确地生成带有GUID的代码。EA可以很好地导入它,但无法正确生成。
这只是一个接口的快速修复,自从我用Delphi编程以来已经很长时间了,所以我不确定类是否也有这样的属性,因此解决方案仅限于接口,目前:)。
发布于 2009-08-19 19:36:31
不是的。Delphi不知道您是否需要GUID,因为不是所有接口都必须有GUID。(例如,不是为COM设计的接口,也不实现IDispatch。)IDE不能读懂你的想法(也许未来还有希望),也不能知道你打算创建什么类型的界面。
发布于 2009-08-20 19:18:06
EA似乎不支持COM编程中的接口。但是,您可以尝试使用模板编辑功能来更改代码生成的方式……
https://stackoverflow.com/questions/1300510
复制相似问题