在.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); 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM