作者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/cn.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