在UWP应用程序中包含第三方DLL - 一步一步?

时间:2016-08-15 00:24:03

标签: c++ visual-studio dll win-universal-app uwp

我正在尝试在Visual Studio 2017中的通用Windows平台应用程序中包含第三方DLL。具体来说,我下载了Autodesk FBX SDK(Visual Studio 2015 UAP版本来自:http://usa.autodesk.com/adsk/servlet/pc/item?id=24746731&siteID=123112),其中包含我平台的.lib和.dll文件。

我将相关的.lib(x86 / release或x86 / debug)添加到Visual Studio中的附加依赖项,但不确定如何让应用程序知道DLL。构建应用程序包失败,并且尝试在运行时直接运行程序失败,可能是因为DLL无法加载。

我花了很多时间阅读UWP,但我对其复杂性和不透明性感到困惑。我假设我需要以某种方式:

  1. 将DLL复制到我的Visual Studio项目目录中。但是哪里?我如何让Visual Studio承认它?我可以在解决方案资源管理器中将其添加为类型文档的内容,但它似乎没有被构建所接收。

  2. 我已经被MS支持(https://social.msdn.microsoft.com/Forums/windowsapps/en-US/26013e5e-3ff1-44a0-8797-0474dabd12d0/including-dlls-in-a-uwp-application-in-visual-studio?forum=wpdevelop)告知我需要将它作为包依赖项添加到Package.appxmanifest文件中,但我找不到任何关于如何准确的示例这样做。

  3. 并且要明确:我没有此DLL的源代码。很确定它是一个由UWP构建的DLL。我只想让它被我的项目识别并在创建时导出到app包。是的,有一个我可以链接的静态库可以工作,但迟早,我将需要一个仅DLL的库,并将不得不学习如何正确。我认为MSDN上有一个如何做到这一点的指南但是几个小时的搜索没有产生任何结果:(

    谢谢,

    巴特

3 个答案:

答案 0 :(得分:3)

Aman Sharma:谢谢。但添加引用似乎不起作用(它不喜欢DLL文件)。然而,我确实按照以下方式开展工作:

  1. “添加 - >现有项目...”到项目根目录。
  2. 右键单击dll文件,选择“属性”,然后通过将“内容”设置为“真实”将文件标记为内容。
  3. 就是这样。奇怪的是,FBX SDK文档声称必须定义FBXSDK_DLL,但这样做会导致编译失败。

    另外,有点烦人的是,DLL文件必须在项目根目录中。它不能移动到子文件夹(例如,Assets /或DLL /或其他)。也许有一种方法可以在清单中指定路径?

    无论哪种方式,只需添加它并将其标记为内容不会在清单文件中创建依赖关系,因为我被告知在MSDN论坛上需要它。

答案 1 :(得分:0)

当你在解决方案中添加一些第三方项目(dll,比如TreeViewControl)时,我自己想通了。

您需要右键点击您的项目 - >添加 - >参考,转到Projects,Solution,选中第三方项目名称左侧的框(本例中为TreeViewControl)并重新编译。

答案 2 :(得分:0)

我直接编辑了项目文件(* .vcxproj),如下所示。对我有用。

{{1}}

另请参阅Referencing C Dlls from Windows 10 Universal App Across CPU Architectures