Re: [問題] C#使用C++ dll之回傳char

看板C_Sharp作者 (睡魔)時間18年前 (2007/11/13 17:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/5 (看更多)
※ 引述《spursGM (沉默而偉大的球隊)》之銘言: : 在C++ dll 程式概述如下: : char * test(void) : { : char testStr[]="Hello World!"; : return *testStr; : } : 在C#宣告如下: : static extern byte[] test(void); : 在C#使用如下: : try : { : byte[] output = test(); : String outputStr = System.Text.Encoding.Default.GetString(output); : label1.Text = outputStr; : } : catch (Exception ex) : { : label1.Text = ex.ToString(); : } C++ 不應在export時回傳void *類型. (pointer沒有鎖定, 記憶體擁有權 也不清楚...) 請把回傳的變數宣告成如void test(char * strRet)這樣... 另外在C#的宣告應改成: void test(System.Text.StringBuilder strRet)... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.134.126.84
文章代碼(AID): #17EM_KSQ (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #17EM_KSQ (C_Sharp)