看板 C_Sharp 關於我們 聯絡資訊
各位板友大家好, 小弟目前在使用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
largesperm: extern 不是簡單多了嗎? 12/11 14:25
largesperm: 把方法單純 extern 出去, C# 一找就找到 也可正常工作 12/11 14:25
回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
Qbsuran: C#傳srting進去會變成wchar_t * 靠windows api轉換就可以 12/14 00:42
Qbsuran: 解決了 12/14 00:42