[問題] C#引用C++的dll用DLLIMPORT失敗 需轉換?

看板C_and_CPP作者 (YO!!!)時間7年前發表 (2018/08/06 16:12), 7年前編輯推噓2(2010)
留言12則, 5人參與, 7年前最新討論串1/2 (看更多)
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1533571933.A.CB1.html

08/07 00:15, 7年前 , 1F
先檢查硬碟中的檔案有沒有故障
08/07 00:15, 1F

08/07 09:04, 7年前 , 2F
CLR Support不用開也可以用阿...文章作者很明顯弄錯了
08/07 09:04, 2F

08/07 09:05, 7年前 , 3F
然後你的圖的網址被擋掉了 要不要重發一次?
08/07 09:05, 3F
已補上圖了 所以不是CLR的問題嗎@@"

08/07 12:23, 7年前 , 4F
透過pinvoke讓managed與unmanaged兩個世界連結
08/07 12:23, 4F
那我少做了什麼嗎~"~ Pinvoke會失敗... ※ 編輯: Stevenashh (42.73.71.232), 08/07/2018 20:31:02

08/07 21:55, 7年前 , 5F
pinvoke只適用C dll, C++不行
08/07 21:55, 5F

08/07 21:55, 7年前 , 6F
下載dependency walk截圖來看看
08/07 21:55, 6F
C++應該是可以的吧!? 我看了很多範例都是可以的 不過感謝大大提供軟體關鍵字 我試試 之前用JustDecompile反組譯失敗 ※ 編輯: Stevenashh (42.73.71.232), 08/07/2018 22:06:03

08/07 22:46, 7年前 , 7F
pinvoke 應該不用加入參考, 它是用動態載入, 只要給對路徑
08/07 22:46, 7F

08/07 22:47, 7年前 , 8F
函數名正確, 呼叫慣例對, x86/x64 沒搞錯應該就可以
08/07 22:47, 8F

08/07 23:02, 7年前 , 9F
不需要按照他的方式加入dll,那個是managed dll的參照
08/07 23:02, 9F

08/07 23:02, 7年前 , 10F
方式,文章根本就誤導你了。
08/07 23:02, 10F

08/07 23:04, 7年前 , 11F
你把你在C#裡面宣告C++ function的部分貼出來看看,這
08/07 23:04, 11F

08/07 23:04, 7年前 , 12F
樣才能幫你
08/07 23:04, 12F
文章代碼(AID): #1RQ7DTon (C_and_CPP)
文章代碼(AID): #1RQ7DTon (C_and_CPP)