尝试使用C ++ / CLI时,在AfxInitExtensionModule上断言

时间:2014-08-05 14:21:32

标签: dll mfc c++-cli

我需要从本机C ++类库中调用一些C#代码。类库在共享dll中使用MFC。感谢this Stackoverflow post,我最近了解到可以使用/ clr选项仅编译选定的文件。这很好,从设计角度和实际角度来看,它似乎都是一种干净的方法,因为最小的重建和预编译头功能与/ clr不兼容。

所以我继续添加一个新的C ++类,设置/ clr选项并编写一些代码来调用.Net dll。到目前为止这么好,每个编译甚至智能感知都是偶然的。但在运行时我遇到了问题。当我使用单元测试项目中的类库时,我得到一个断言。

我没有堆栈跟踪,但断言是在mfc dll(在我的情况下为mfc120d.dll)中触发的 dllmodul.cpp在此行的函数InternalDllMain

VERIFY(AfxInitExtensionModule(controlDLL, hInstance));

这在启动时,在运行任何测试用例之前以及对.Net代码的任何调用之前发生。当我从MFC应用程序链接库时,一切正常。

发生了什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

事实证明我不小心写了

#include "stdafx.h"

在我的C ++ / CLI .cpp文件中。我想,习惯的力量。删除包含修复了问题。