Re: [問題] 引入dll之後函式傳回參數轉換

看板C_Sharp作者 (不放過自己)時間16年前 (2009/09/05 16:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
1. 我不清楚你原文的CommRead函式是什麼用途, 更不清楚它到底需要的參數是什麼, 且也不清楚原C++原始碼的AnsiString是哪邊定義的, 所以也只能就你說的Func和Data, 就假設它們為char array 2. 假設你已經有了Func和Data兩個char array, 而你想讓使用到CommRead函式的這個部份編譯通過, 那麼嘗試以下做法或許能夠編譯通過(不保證程式能運作正常): unsafe { fixed (char* ptr1 = Func) { fixed (char* ptr2 = Data) { int i = 1; if( CommRead( 0, &i, ptr1, ptr2 ) != 0 ) { ... } } } } P.S. 請在你的Build Options設定中, 將Allow unsafe code打勾, 或是在Compile時加上 /unsafe 3. 因為沒有更多的資訊, 也不曉得你從哪邊參考的C++原始碼要移植成C#版 但如果能夠知道CommRead在做些什麼, 而又不想花太多時間在解決你所遭遇的問題時, 強烈建議你重新寫一個C#版的CommRead函式搞不好還比較快 (你是個Programmer的話,寫個函式替換不花太多時間吧?!) 以上建議給予參考 -- 對於已經無法擁有的 唯一能做的是 不要忘記 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.230.128.38 ※ 編輯: petrushka 來自: 125.230.128.38 (09/05 16:11) ※ 編輯: petrushka 來自: 125.230.128.38 (09/05 16:14)
文章代碼(AID): #1AeXoeoL (C_Sharp)
文章代碼(AID): #1AeXoeoL (C_Sharp)