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

作者: Stevenashh (YO!!!)   2018-08-07 00:12:10
開發平台(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微薄小心意回饋
作者: Schottky (順風相送)   2018-08-07 00:15:00
先檢查硬碟中的檔案有沒有故障
作者: petercoin (彼得幣)   2018-08-07 09:04:00
CLR Support不用開也可以用阿...文章作者很明顯弄錯了然後你的圖的網址被擋掉了 要不要重發一次?
作者: lightyen (lightyen)   2018-08-07 12:23:00
透過pinvoke讓managed與unmanaged兩個世界連結
作者: Domos (沒事發發廢文)   2018-08-07 21:55:00
pinvoke只適用C dll, C++不行下載dependency walk截圖來看看
作者: firose (guest也是也是也是也是也)   2018-08-07 22:46:00
pinvoke 應該不用加入參考, 它是用動態載入, 只要給對路徑函數名正確, 呼叫慣例對, x86/x64 沒搞錯應該就可以
作者: petercoin (彼得幣)   2018-08-07 23:02:00
不需要按照他的方式加入dll,那個是managed dll的參照方式,文章根本就誤導你了。你把你在C#裡面宣告C++ function的部分貼出來看看,這樣才能幫你

Links booklink

Contact Us: admin [ a t ] ucptt.com