包括第三方DLL在UWP应用程序-一步一步
Including a third-party DLL in a UWP application - step by step?
我试图在Visual Studio 2017中的通用Windows平台应用程序中包含第三方DLL。具体来说,我从:http://usa.autodesk.com/adsk/servlet/pc/item?id=24746731&siteID=123112下载了Autodesk FBX SDK (Visual Studio 2015 UAP版本),其中包含我的平台的。lib和。dll文件。
我将相关的。lib (x86/release或x86/debug)添加到我在Visual Studio中的额外依赖项中,但我不确定如何使应用程序意识到DLL。构建应用程序包失败,并且尝试在运行时直接运行程序失败,可能是由于DLL加载失败。
我花了很多时间阅读关于UWP的资料,但是我完全被它的复杂性和不透明性所迷惑。我假设我需要:
-
将DLL复制到我的Visual Studio项目目录中。但是在哪里?我如何让Visual Studio承认它?我可以将其添加为解决方案资源管理器中文档类型的内容,但它似乎没有被构建拾取。
-
我已经被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)告知,我需要将其作为包依赖项添加到包中。
只是要清楚:我没有这个DLL的源代码。很确定它是uwp构建的DLL。我只是希望它能被我的项目识别,并在我创建它时导出到应用程序包。是的,有一个静态库,我可以链接到工作,但迟早,我将需要一个只有dll的库,并将不得不学会得到正确的。我想在MSDN上有一个如何做到这一点的指南,但是几个小时的搜索没有任何结果:(
谢谢你,
巴特
Aman Sharma:谢谢。但是添加引用似乎不起作用(它不喜欢DLL文件)。然而,我确实设法使它工作如下:
- "Add -> Existing item…"到项目根目录
- 右键单击dll文件,选择"属性",将"内容"设置为"True",将该文件标记为内容。
就是这样。奇怪的是,FBXSDK文档声称必须定义FBXSDK_DLL,但这样做会导致编译失败。
另外,有点恼人的是,DLL文件必须在项目根目录下。它不能移动到子文件夹(说,资产/或DLL/或任何)。也许有办法在清单中指定路径?
无论哪种方式,简单地添加它并将其标记为内容不会在manifest文件中创建依赖项,正如我在MSDN论坛上被告知需要的那样。
我直接像下面这样编辑了项目文件(*.vcxproj)。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
... other settings ...
<ItemGroup>
<Content Include="..PathTo$(PlatformTarget)-$(Configuration)some.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
参见在Windows 10通用应用程序中引用C dll
当你在你的解决方案中添加一些第三方项目(dll,比如TreeViewControl)时,我自己就明白了。
你需要右键点击你的项目-> Add -> Reference,进入Projects, Solution,选中第三方项目名称左边的方框(在这个例子中是TreeViewControl),然后重新编译
- 我的 c++ 应用程序中的运行时间从 0 增加到 60 太快了(例如一毫秒或一微秒)
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 是否有一种简单的方法可以从普通的 win32 C++代码向应用程序见解提供数据?
- 是否有一种跨平台的方法可以在使用 C++ 编写的二进制应用程序中嵌入资源?
- 如何在C 中每个应用程序一次播种MT19937并多次使用它
- MFC Applicaton:如何将一组控件添加到单个文档应用程序中
- 有没有一种方法可以测量桌面应用程序 UI 响应时间
- 在另一台 Mac 上运行应用程序
- 在DLL中分配内存并将其指针提供给客户端应用程序,这是不是一种糟糕的做法
- 一段时间后,C++应用程序占用100%的cpu周期
- gsoap 在我调用的每一秒都会对我的应用程序(用 C 编写)进行分段错误
- 在我的C++应用程序中定义IHaveVirtualDestructor基类是一种好的做法吗
- 作为一名初级程序员,我该如何开始制作桌面应用程序
- 当应用程序需要更多 RAM 时,如何允许将一段内存换出到磁盘
- 在另一台计算机上运行应用程序时缺少DLL文件
- 获取第三方点击一次应用程序的配置文件夹
- JNI_CreateJavaVM() 每隔一次运行应用程序时都会失败(确切地说)
- 子访问父变量/定义变量一次,在整个应用程序中使用
- 有没有一种方法可以在Mac中以无头的方式运行GUI应用程序
- 包括第三方DLL在UWP应用程序-一步一步