使用 Visual C++ 创建的 WinRT DLL 不会在 Windows 应用商店应用中加载
WinRT DLL created using Visual C++ doesn't load in a Windows Store app
我正在使用Visual Studio 2012编写Windows 8商店应用程序。主应用程序是XAML/C#应用程序,但它还使用使用C /CX编写的WinRT组件。对于WinRT组件,我正在使用新的Project对话框中使用的VS项目模板,称为" DLL(Windows Store Apps)"。完成此项目后,我将其更改为包含一个带有单个REF类的单个名称空间。我的C#项目包含对此C 项目的引用。
但是,当我尝试运行我的应用程序时,C#代码在尝试实例化/激活C ref类的时间时会引发异常。即使在MSDN样本上,我也看到了几个工作示例。我已经证实了WinRT组件DLL和WinMD文件已正确复制到最终应用程序包中,并且该应用程序的AppxManifest.xml可以使用WINRT类的正确注册信息正确更新。但是它仍然失败。
我不知道怎么了。如何解决此错误?
Windows运行时组件二进制文件必须具有以下两个导出: dllcanunloadnow dllgetActivationFactory
当您使用VS项目模板" DLL(Windows Store Apps)"时,您的项目不会定义必要的宏,从而导致编译器将上述两个导出放入二进制中。在项目设置下,您会注意到宏集为_windll。您需要将其更改为_WINRT_DLL。
另外,使用C /CX创建WinRT组件的正确方法是在Visual C -> Windows Store 下使用称为" Windows Runtime Component"的VS项目模板。使用此功能将创建一个已经正确设置的项目,并使用正确的项目设置等。
- 如何从Windows应用程序输出到标准?
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- Windows 10 上已安装应用的列表
- 将 Crashpad 与 Windows Qt 应用程序集成
- 在 Windows/C++ 上使用多进程应用程序的高精度定时操作
- 将控制台应用程序直接输出到Visual Studio而不是外部Windows控制台中
- 是否有可能构建面向Linux和Windows的.Net Core C++ / CLI应用程序?
- 将通用Windows应用程序转换为VisualStudio 2019上的常规应用程序
- Windows 7 应用程序在未聚焦时运行速度较慢
- 通知 Windows 系统应用程序字体已被卸载/删除
- 在Linux上交叉编译Windows应用程序时如何链接到Winsock?
- C++应用程序缺少 winrt::Windows::Storage::Streams::D ataWriter
- Windows 和 Android 应用程序是否需要 SSL?
- 如何使用cmake和Visual Studio 2019编译简单的Windows应用程序?
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 如何在Windows窗体应用程序中打开txt文件并将行导入文本框
- OutputDebugString在Windows通用应用程序上的位置?以及如何从OutputDebugString捕获
- 我应该使用什么信号来终止/终止Windows上的应用程序
- 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的C++应用程序
- 如何读取windows服务启动的控制台应用程序的输出