Delphi6 调用 C# Dll 时一个编译问题
2008-01-24 11:22
1131 查看
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 ;;
;;==============================================;;
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.
[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 ;;
;;==============================================;;
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!
相关文章推荐
- Delphi 调用 C# Dll 时一个编译问题 mscorlib_TLB.h Ambiguity between 'String' and 'System::String'
- C# 调用delphi生成Dll的相关问题
- c#调用c++编译的dll的移植问题
- 关于C#与Delphi DLL调用及回调问题注意事项
- (二)一个工作任务引起的乱战——C++程序编译为dll,让C#调用
- C#调用delphi dll接口问题
- 将C语言编译成DLL并用C#进行调用以及关于从C#传输中文路径到C的DLL中打开文件的问题
- VC调用Delphi写的dll的一个问题的处理
- C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件
- c#调用delphi写的dll遇到并解决的问题
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
- C#调用Delphi DLL时,要注意的几个问题。
- C/C++/C#问题记录(一)VS2012编译调用dll项目找不到lib的workaround
- 我用C#调用C编译的dll中有这样一个函数,函数大概的功能就是把数据保存到buf缓冲区中:
- c#下调用VC dll 的一个问题
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
- Delphi调用C#dll的问题
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
- Delphi调用C#dll的问题
- 用C#调用C++DLL时的字符串指针参数传递问题