unit name mismatch 'c2graphics.pas' 是什么意思?(50分)

  • 主题发起人 主题发起人 fudan
  • 开始时间 开始时间
F

fudan

Unregistered / Unconfirmed
GUEST, unregistred user!
我的单元名称就是那个啊,
而且大小写也一致,为什么?
















 
单元名和单元文件名应该一致。也许你的单元名中有不符合语法规则的字符, 或者存在
非法字符,也许你看不见, 似乎是空格,但是其实是另外的字符。
我有这样的经验, 直接将网页上的代码粘贴到Delphi编辑器中, 结果发现大量报告非法
字符, 又看不到什么特殊字符, 后来发现代码前面的空白原来不是空白, 是一些特殊
的“看不见的”字符。将这些特殊空格删除, 代码OK
 
我的程序需要自动生成Delphi 的项目并且编译运行,
这是用我的DelphiPrj类生成的项目文件

program TStackArchitecture;

uses
Forms,
SysUtils,
c2framework in 'D:/dcom/project/fw/c2framework.pas',
BaseType in 'D:/dcom/project/fw/BaseType.pas',
C2Graphics.pas in 'D:/dcom/project/fw/C2Graphics.pas' {C2ViewPort},
C2Utils in 'D:/dcom/project/fw/C2Utils.pas',
Globals in 'D:/dcom/project/fw/Globals.pas',
HashTable in 'D:/dcom/project/fw/HashTable.pas',
MyStrUtil in 'D:/dcom/project/fw/MyStrUtil.pas',
StrUtils in 'D:/dcom/project/fw/StrUtils.pas',
StackArch in 'D:/dcom/source/comp/StackArch.pas';

var

TStackArchitecture_instance:TStackArchitecture;

{$R *.res}

begin

Application.Initialize;
Application.Run;
TStackArchitecture_instance:=TStackArchitecture.Create;
TStackArchitecture_instance.Start;
end.

end.

很奇怪, 会抱许多错误,
都是我以前没有见过的,
我在生成文件的时候用#13#10没有关系吧,




 
该错误提示显然是:“单元名失配:C2Graphics.pas”
看了一眼你贴出的片段, 中间多数都是:
XXX in 'XXXXXXXX'
而惟独C2Graphics.pas的是:
XXX.pas in 'XXXXXXXX'
Delphi 6对这一类的声明似乎都是默认不要后缀的, 你把C2Graphics.pas这句中的后缀
去掉试试?

如果带后缀: C2Graphics.pas in 'XXXXXXXX', 我想Delphi会这样理解这个文件名:
C2Graphics.pas.pas, 即它已经默认了一个.pas, 你再加个.pas, 就变成了C2Graphics.pas.pas

不过, in 'XXXXXXX'里面的路径描述是必须用全路径的。文件名也必须要完整。在这里,带后缀就是正确的。
 
确实如此,我自己忽略了,
 
后退
顶部