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 會報錯,一般提示爲內存寫保護的錯誤信息。