首页新闻找找看学习计划

请问.NET Core平台下调用C++动态库的问题

0
悬赏园豆:50 [待解决问题]

DLL本身是C++编写的,通过DllImport / PINVOKE的方式封装为C#可以调用的类:
[DllImport("Fwlib64.dll", EntryPoint="cnc_actf")]
public static extern short cnc_actf(ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBACT a);

现在,在windows 操作系统中,以上的过程可以正常调用;但是在Linux环境下调用的时候,提示无法加载Fwlib64.dll,缺少dll或它的依赖项:
Unable to load shared library '/home/pi/workspace/publish2/Fwlib64.dll' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: /home/pi/workspace/publish2/Fwlib64.dll: invalid ELF header
我尝试把可能依赖的dll都放到运行目录下,仍然无法正常调用。

请问,有没有高手碰到过类似的问题?
另外我这个DLL还有linux下的.SO格式的版本,是不是可以引用它?

落迦山的主页 落迦山 | 初学一级 | 园豆:152
提问于:2018-12-14 09:35
< >
分享
所有回答(2)
0

在 linux 上需要引用 Fwlib64.so

[DllImport("Fwlib64.so", EntryPoint="cnc_actf")]

推荐一篇参考博文:How To Bind C++ Code with Dotnet Core

dudu | 园豆:38623 (高人七级) | 2018-12-14 09:55
0

我问下 您这个问题解决了吗 我现在也遇到了这个问题

小原木筏 | 园豆:202 (菜鸟二级) | 2019-11-15 09:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册