如何P /从地铁调用到本机DLL?

我有一个库,由两部分组成 - 一个.net程序集,P /调用本地第三方DLL。 在桌面模式下,工作得很好:但是,当从Metro风格的应用程序中引用程序集并运行它时,它会在P / Invoke上抛出System.DllNotFoundException ,抱怨“无法加载DLL库”:指定的模块无法被发现。”

本机dll没有做任何特别的事情,但只创建了到服务器的TCP / IP连接。 系统无法知道这一点,而是本地DLL可以做任何事情。 这就是为什么我怀疑它可能无法做到这一点。

MSDN上提到了一些有关Metro风格应用的dll搜索顺序,暗示它可以加载本地dll?

另外,我在msdn上找到了关于加载“库”的链接,并在清单文件中提到了PackageDependency,但是对于我来说,仍然不清楚如何以可以P / Invoke的方式将本地dll添加到包中。


将它添加到您的项目中(右键单击项目,添加,现有项目)。检查该项目的属性中,Content设置为True(默认为false)。


这可能是设计。 您的问题可能是由LoadLibrary返回错误代码126导致的。 如果您的应用程序以桌面模式运行,则应该针对您的应用程序定位桌面模式 您也可以使用早期版本的Windows。

链接地址: http://www.djcxy.com/p/44467.html

上一篇: How to P/Invoke to a native dll from Metro?

下一篇: P/Invoke or C++/CLI for wrapping a C library