作者Stevenashh (YO!!!)
看板C_and_CPP
標題[問題] C#引用C++的dll用DLLIMPORT失敗 需轉換?
時間Tue Aug 7 00:12:10 2018
開發平台(Platform): WIN 7
編譯器: visual studio 2017
額外使用到的函數庫(Library Used): 外部dll
問題(Question):
平時是寫C#,但近期需要使用C#呼叫其他廠商c++的dll(不曉得是manage還unmanage)
查詢利用DLLIMPORT可以呼叫 但失敗了(應該不是使用錯誤)
出現的錯誤如圖
https://imgur.com/a/Hw9DX6G
原文:
https://goo.gl/if1WsW
Google到的原因是沒有c++沒有實作clr(=Unmaged?)
但我看所有DLLIMPORT的教學都是說C#可以直接呼叫Unmanaged
抱歉因為不太懂c++
跪求大大解惑是什麼原因,或是可以提供我關鍵字讓我繼續往下找
我應該做些什麼動作才能將這包dll轉換成C#可以IMPORT的版本
補充說明(Supplement):
願以1000P微薄小心意回饋
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.71.232
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1533571933.A.CB1.html
1F:→ Schottky: 先檢查硬碟中的檔案有沒有故障 08/07 00:15
2F:→ petercoin: CLR Support不用開也可以用阿...文章作者很明顯弄錯了 08/07 09:04
3F:→ petercoin: 然後你的圖的網址被擋掉了 要不要重發一次? 08/07 09:05
已補上圖了 所以不是CLR的問題嗎@@"
4F:推 lightyen: 透過pinvoke讓managed與unmanaged兩個世界連結 08/07 12:23
那我少做了什麼嗎~"~ Pinvoke會失敗...
※ 編輯: Stevenashh (42.73.71.232), 08/07/2018 20:31:02
5F:推 Domos: pinvoke只適用C dll, C++不行 08/07 21:55
6F:→ Domos: 下載dependency walk截圖來看看 08/07 21:55
C++應該是可以的吧!? 我看了很多範例都是可以的
不過感謝大大提供軟體關鍵字 我試試 之前用JustDecompile反組譯失敗
※ 編輯: Stevenashh (42.73.71.232), 08/07/2018 22:06:03
7F:→ firose: pinvoke 應該不用加入參考, 它是用動態載入, 只要給對路徑 08/07 22:46
8F:→ firose: 函數名正確, 呼叫慣例對, x86/x64 沒搞錯應該就可以 08/07 22:47
9F:→ petercoin: 不需要按照他的方式加入dll,那個是managed dll的參照 08/07 23:02
10F:→ petercoin: 方式,文章根本就誤導你了。 08/07 23:02
11F:→ petercoin: 你把你在C#裡面宣告C++ function的部分貼出來看看,這 08/07 23:04
12F:→ petercoin: 樣才能幫你 08/07 23:04