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