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

时间:2015-12-23 19:53:49

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

当我在我的C ++静态库项目A中包含atlbase.h标头时,我的应用程序崩溃,它通过引用添加到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,Object参数)\ r \ n在App5.App.OnLaunched(La“

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

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

使用工具的版本:

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

1 个答案:

答案 0 :(得分:0)

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