在.net中调用Delphi dll的Pchar转换

Posted 翼龙zyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在.net中调用Delphi dll的Pchar转换相关的知识,希望对你有一定的参考价值。

Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型。如果Delphi dll是Delphi2007以前的版本编译的,则Pchar是Ansi类型;如果Delphi dll是Delphi2009以后的版本编译的,则Pchar是Unicode类型。请看以下实例。

Ansi类型:

[DllImport("my.dll")] 
[return: MarshalAs(UnmanagedType.LPStr)] 
public static extern String GetMyNickName( [MarshalAs UnmanagedType.LPStr)] String aName ); 

Unicode类型:

[DllImport("my.dll")] 
[return: MarshalAs(UnmanagedType.LPWStr)]
public static extern String GetMyNickName( [MarshalAs(UnmanagedType.LPWStr)] String aName ); 

调用实例:

string myName;
string nickName; myName = "Eric Tony"; 
nickName = GetMyNicName(myName); 

 

以上是关于在.net中调用Delphi dll的Pchar转换的主要内容,如果未能解决你的问题,请参考以下文章

delphi调用VC写的Dll报错

在 Delphi 2007 DLL 和 XE6 EXE 之间传递 PChar

delphi编写dll遇到的问题

delphi调用vc编写的dll,出现错误

delphi如何调用dll函数

你好,请教一个问题,delphi如何调用DLL中的一个带动态数组参数的方法?