这个错误是什么? mscorlib_TLB.pas

时间:2011-08-25 20:29:06

标签: delphi compilation

我们有很多Delphi项目,当我之前构建它们时,我没有看到任何错误。但是最近我在构建其中一个项目时看到了以下错误。

D:\ Delphi Projects \ MySetting.pas致命:无法编译使用过的单位' mscorlib_TLB.pas'

起初我认为一些后台进程正在使用这个mscorlib_TLB.pas,然后我重新启动我的计算机并再次构建它,它仍然失败并在上面给出了同样的错误。这个mscorlib_TLB.pas错误是什么?

谢谢!

3 个答案:

答案 0 :(得分:6)

您已在托管(.net)对象周围导入了COM可调用包装器(CCW)的COM对象。导入的类型_TLB.pas文件(有时会不必要地)在其mscorlib_TLB子句中引用uses

Delphi的类型库导入程序有问题,自动生成的TLB pas文件中存在语法错误。

尝试在使用它的任何单位中删除对mscorlib_TLB的引用。

如果该单元实际上取决于mscorelib中的某些内容,那么您必须手动修复400kB pas文件中的语法错误。

答案 1 :(得分:0)

如果您确实需要使用该库,可以使用 Component :: Import Component 工具导入它。

答案 2 :(得分:0)

我发现mscorlib_TLB和我几年前在C#中构建的COM包装器一起MyComWrapper。当我将MyComWrapper_TLB复制到另一个工作站时,还需要复制mscorlib_TLB,因为它包含MyComWrapper_TLB所需的类型定义。

如果无法找到相关tlb的重新导入,则应重新生成mscorlib_TLB.pas。看来我在2017年10月4日重新导入了tlb。

这是描述单位的序幕:

unit mscorlib_TLB;

// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //

// $Rev: 52393 $
// File generated on 10/4/2017 11:15:21 PM from Type Library described below.

// ************************************************************************  //
// Type Lib: C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb (2)
// LIBID: {BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}
// LCID: 0
// Helpfile: 
// HelpString: mscorlib.dll
// DepndLst: 
//   (1) v2.0 stdole, (C:\Windows\SysWow64\stdole2.tlb)
// Parent TypeLibrary:
//   (0) v1.0 MyComWrapper, (C:\source\my-client\client-project\MyComWrapper\bin\x86\Release\MyComWrapper.tlb)