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);
时间: 2024-10-25 02:34:02