当前位置: 代码迷 >> Delphi >> C#调用delphi dll解决思路
  详细解决方案

C#调用delphi dll解决思路

热度:5888   发布时间:2013-02-25 00:00:00.0
C#调用delphi dll
最近用C#调用delphi dll文件时,遇到几个问题。以下delphi数据类型,在C#中用什么对应:
delphi        c#
 Pointer       ?
 char          ?
 Dword         ?
 Integer       ?
 char[]        ?
另外delphi中的nil值对应c#中的null吗?
------解决方案--------------------------------------------------------
Pointer      标记unsafe
char         char 
Dword        UNSIGN LONG 
Integer      int32 
char[]        char[]
delphi中的nil值对应c#中的null
NULL是无值无类型   
  NIL是空指针型

------解决方案--------------------------------------------------------
pointer-------inptr

------解决方案--------------------------------------------------------
Pointer 可以是IntPtr 也可以直接用 int 对应
char的话,我不会delphi 如果delphi里面的char是一个Unicode字符, 那就对应C#里面的char, 如果delphi的char与C++里面char的概念一样,那就是C# 里面的byte
Dword 是 int32, 也就是int
Integer同上
nil 是 IntPtr.Zero


char[] 这个比较麻烦, 如果你想要用char[]传递一个字符串, 那建议直接用C#的string然后给这个参数加上[MarshallAs(UnmanageType.xxx)] (这个xxx根据你的字符串类型而定,请参考msdn)属性。
  相关解决方案