C#調用delphi Dll中pchar 返回值解決


C#調用delphi Dll中pchar 返回值解決

  (2013-09-20 22:40:11)
   
    相信很多使用c#的朋友碰到過類似的問題,我今天在開發中也碰到類似問題,希望能給大家一點啟示吧!
在delphi中申明的函數原型為 function aa(var writedate:pchar;var validdate:pchar):integer;stdcall;動態庫的名稱為valid.dll 而且函數的返回值是通過兩個pchar類型來返回的
那么我們在c#中該用何種類型來接收pchar呢,個人建議用stringbuilder
我們在c#中可以這用來申明
[DllImport("valid.dll"),EntryPoint="aa" CharSet=Charset.Ansi]
public static extern int checkDate(ref StringBuilder WriteDate,ref StringBuilder LimitDate);
記住如果delphi中用var來申明變量的,在C#中一定要加ref 的,另外在delphi中用pchar類型的變量在C#中最好用StringBuilder 否則得話可能用C#來調用Delphi Dll 會報錯,通常提示為內存寫保護的錯誤信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM