包含atlbase.h标头时应用程序崩溃

本文关键字:应用程序 崩溃 atlbase 包含 | 更新日期: 2023-09-27 18:27:50

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

"System.IO.FileNotFoundException:找不到指定的模块。(HRESULT中的异常:0x8007007E)''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(Type sourcePageType,Object参数)''r''n在App5.App.OnLaunched(La"

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

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

使用工具的版本:

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

包含atlbase.h标头时应用程序崩溃

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