use*_*073 5 delphi record include type-declaration
我正在编写一个Delphi 2010应用程序.它有许多文件,其中两个称为Utils_ABS和Utils_MAT.我创建了一个两个文件都需要理解的记录类型,所以我将它放在自己的文件中,名为TypeDefs.inc.
在Utils_MAT和Utils_ABS的顶部,我已经包含了TypeDefs.inc.
unit Utils_ABS;
interface
{$WARNINGS ON}
{$HINTS ON}
{$WARN UNIT_PLATFORM OFF}
{$WARN SYMBOL_PLATFORM OFF}
uses
Windows, Messages, ... Utils, Analysis, UserFeedback, Utils_MAT;
{$I TypeDefs.inc} // Include TypeDefs that are used multiple places
procedure ABS_Load;
...
Run Code Online (Sandbox Code Playgroud)
Utils_MAT看起来非常相似,特别是与之相关{$I TypeDefs.inc}.
关键项是两个文件引用第三个文件TypeDefs.inc作为INCLUDE,它具有RECORD的定义:
type
TTableAttrType = Record
tabIOT: Boolean; // Is table an IOT
...
end;
Run Code Online (Sandbox Code Playgroud)
除了这个文件中的这个记录定义之外别无其他.
问题是,当我编译时,我收到以下错误:
[DCC错误] Utils_ABS.pas(212):E2010不兼容的类型:'Utils_ABS.TTableAttrType'和'Utils_MAT.TTableAttrType'
我完全糊涂了.如果它们来自相同的定义,它们如何是不兼容的类型?不是定义的副本,而是字面上相同的定义.
我已检查了所有源代码,并且此TTableAttrType记录未在其他任何位置定义.
我试图注释掉$ INCLUDE,并将记录的定义硬编码到Utils_ABS和Utils_MAT中,但我仍然得到同样的错误.
如何让这个错误消失?如何在一个位置定义记录结构,并让多个文件访问它?
| 归档时间: |
|
| 查看次数: |
3062 次 |
| 最近记录: |