c# - 包含 atlbase.h header 时应用程序崩溃

标签 c# c++ visual-studio win-universal-app

当我在我的 C++ 静态库项目 A 中包含 atlbase.h header 时,我的应用程序崩溃,该项目通过引用 C++ dll 项目 B 添加,然后通过引用 C++ 运行时组件项目 C 添加。项目 C 通过引用添加C# 通用应用程序 D。设 K 是类形式的 C 项目,它在其构造函数中间接引用项目 A 的功能。当创建类 K 的实例时,D 应用程序抛出异常并显示该消息:

“System.IO.FileNotFoundException:找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)\r\n 在 System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD)\r\n 在 WindowsRuntimeComponent2 .Class1..ctor()\r\n 在 App5.MainPage..ctor()\r\n 在 App5.App5_XamlTypeInfo.XamlTypeInfoProvider.Activate_0_MainPage()\r\n 在 App5.App5_XamlTypeInfo.XamlUserType.ActivateInstance()\r\n 在 Windows.UI.Xaml.Controls.Frame.Navigate(类型 sourcePageType,对象参数)\r\n 在 App5.App.OnLaunched(La"

消息是可以理解的,但我不明白为什么找不到它,因为当项目 B 是静态库而不是 dll 或不包含 atlbase.h 时它可以正常工作。有人知道我做错了什么吗?

所有项目都是 windows 10 的通用窗口,我在 windows phone 上测试我的应用程序。

使用工具版本:

  • Microsoft Visual Studio Professional 2015 版本 14.0.247200.00 更新 1
  • Microsoft .NET Fremework 版本 4.6.01055

最佳答案

我也遇到了同样的问题。 您可以将 _ATL_NO_DEFAULT_LIBS 添加到项目的预处理器中,其中包括 atlbase.h

关于c# - 包含 atlbase.h header 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442777/

相关文章:

c# - 用于 P/Invoke 访问的引脚数据

c# - 使用 split 函数创建二维数组列表并绑定(bind)到 asp.net c# 中的 gridview

c# - C# 中模板类型的必需属性

c# - 如何从 C# 中的 C++ dll 中使用具有全局变量的函数获取返回数组?

c++ - 为什么我的修剪功能不起作用?

c++ - 如何检查程序是否从自动启动运行?

c# - 为什么 AspNetCompatibilityRequirementsMode.Allowed 会修复此错误?

c# - 计算价格方法在 Visual Studio 中不起作用

c++ - Visual Studio 2013 - C++ 错误

javascript - 在 Visual Studio 2013 中恢复损坏的 Java 脚本