討論串[問題] C#使用C++ dll之回傳char
共 5 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者UNARYvvv (有趣生活)時間18年前 (2007/11/14 19:06), 編輯資訊
0
0
0
內容預覽:
那是錯誤寫法而且也不 work well. 注意他是寫 char testStr[]="Hello World!";. 所以他 return testStr; 時,就是回傳放在 stack 上字串的起始位址. 而不是字串常數 "Hello World" 在 constant pool 中的位址. 離
(還有225個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者luse (luse)時間18年前 (2007/11/14 02:50), 編輯資訊
0
0
0
內容預覽:
這個例子 testStr 會被分配在STack上 可是 字串常數 "Hello World"不會. return testStr 不是一個很好的寫法 but work well. 下面的話 一般來說 其實讓.NET自己 Marshaling. 回 String(const char*) 或 Stri

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者cole945 (躂躂..)時間18年前 (2007/11/13 18:45), 編輯資訊
0
0
0
內容預覽:
這個寫法就算在 C/C++ 都是錯的呀 @_@. 你的 return type 是 char*, 可是你卻 return char. 就算你是要 return testStr 的字串好了 (即 testStr),. 可是該字串的內容是配置在 test 的 call stack中, 一但 return
(還有169個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者leicheong (睡魔)時間18年前 (2007/11/13 17:35), 編輯資訊
0
0
0
內容預覽:
C++ 不應在export時回傳void *類型. (pointer沒有鎖定, 記憶體擁有權. 也不清楚...). 請把回傳的變數宣告成如void test(char * strRet)這樣.... 另外在C#的宣告應改成: void test(System.Text.StringBuilder s

推噓1(1推 0噓 0→)留言1則,0人參與, 最新作者spursGM (沉默而偉大的球隊)時間18年前 (2007/11/13 15:55), 編輯資訊
0
0
0
內容預覽:
在C++ dll 程式概述如下:. char * test(void). {. char testStr[]="Hello World!";. return *testStr;. }. 在C#宣告如下:. static extern byte[] test(void);. 在C#使用如下:. try
(還有259個字)
首頁
上一頁
1
下一頁
尾頁