I have written an Assembly that also exposed itself as a COM object using
C#.NET.
When I am trying to do "Import Type Library" from Delphi 6 Pro I am
receiving these errors when trying to compile.
[Error] mscorlib_TLB.pas(5194): Type 'Byte' is not yet completely defined
[Error] mscorlib_TLB.pas(5209): Type 'Double' is not yet completely defined
[Error] mscorlib_TLB.pas(5235): Type 'Int64' is not yet completely defined
[Error] mscorlib_TLB.pas(5267): Type 'Single' is not yet completely defined
[Error] mscorlib_TLB.pas(5747): Illegal type in OLE automation section: 'Byte'
[Error] mscorlib_TLB.pas(5754): Illegal type in OLE automation section: 'Single'
[Error] mscorlib_TLB.pas(5755): Illegal type in OLE automation section: 'Double'
[Error] mscorlib_TLB.pas(10874): Illegal type in OLE automation section: 'Byte'
[Error] mscorlib_TLB.pas(10881): Illegal type in OLE automation section: 'Single'
[Error] mscorlib_TLB.pas(10882): Illegal type in OLE automation section: 'Double'
[Fatal Error] TestCOM_TLB.pas(60): Could not compile used unit 'mscorlib_TLB.pas'
.Net defines some types that are defined in VCL. Download Managed VCL and use mscorlib_tlb.pas from there - it is in source and even in trial version. Or open $(Delphi)\Bin\tlibimp.sym in notepad (backup existing version first) and add:
;;==============================================;;
;; Map mscorlib CoClasses to better names ;;
;;==============================================;;
[{BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}:TypeNames]
Byte=CLRByte
Double=CLRDouble
Single=CLRSingle
Int16=CLRInt16
Int32=CLRInt32
Int64=CLRInt64
String=CLRString
Object=CLRObject
Array=CLRArray
Enum=CLREnum
Boolean=CLRBoolean
Char=CLRChar
Guid=CLRGuid
Type=CLRType
Void=CLRVoid
Pointer=CLRPointer
Exception=CLRException
然后,重新打开Delphi,重新导入tlb文件,编译OK!
C#.NET.
When I am trying to do "Import Type Library" from Delphi 6 Pro I am
receiving these errors when trying to compile.
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
.Net defines some types that are defined in VCL. Download Managed VCL and use mscorlib_tlb.pas from there - it is in source and even in trial version. Or open $(Delphi)\Bin\tlibimp.sym in notepad (backup existing version first) and add:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
然后,重新打开Delphi,重新导入tlb文件,编译OK!