[問題] C#引用C++ dll

看板C_Sharp (C#)作者 (超越自己)時間10年前 (2014/12/11 13:09), 10年前編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/1
各位板友大家好, 小弟目前在使用C#引用C++的dll, 無奈遇到問題,想和板友請教.. 目前測試C++ dll時, 兩個函式都是在class內, 其中一個是做加法,稱A; 另一個稱B,是做完運算將數值寫入資料表。 在C++內都有用dllexport,沒使用extern "C"。 在C#是採用DllImport,有使用EntryPoint參數。 在實際用C#調用過程, A能夠被調用,回傳數值也正確, B則是有回傳值,觀看回傳值為正確,但是數值卻無寫入資料庫。 此C++ dll在用C++調試時是正常的, 懇請板友能夠提供排解問題的方法,謝謝。 (註:此C#是發行到IIS下做WebService) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.138.110 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1418274561.A.716.html

12/11 14:25, , 1F
extern 不是簡單多了嗎?
12/11 14:25, 1F

12/11 14:25, , 2F
把方法單純 extern 出去, C# 一找就找到 也可正常工作
12/11 14:25, 2F
回l大的話,目前我正在用extern, 依舊是A函式能用,B函式不行。 這和B函式內又呼叫其他函式有關係嗎? ※ 編輯: BIAO (60.251.138.110), 12/11/2014 15:02:46 發現程式其實有動作,但是在條件判斷時就跳開了, 目前正在查傳入的參數為何? 原C++ dll是char*,但C#是用string傳入。 ※ 編輯: BIAO (61.219.255.70), 12/12/2014 09:31:37

12/14 00:42, , 3F
C#傳srting進去會變成wchar_t * 靠windows api轉換就可以
12/14 00:42, 3F

12/14 00:42, , 4F
解決了
12/14 00:42, 4F
文章代碼(AID): #1KYIS1SM (C_Sharp)
文章代碼(AID): #1KYIS1SM (C_Sharp)