[问题] 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