chi*_*n s 24 c++ tdd googletest visual-c++
我正在使用GoogleTest为以下课程编写测试,我收到了上述错误.
class Base
{
// Other Functions;
CSig objSig[50];
}
Run Code Online (Sandbox Code Playgroud)
Class CSig如下:
class CSig
{
//... constructor, destructor(empty) and some functions
CMod *objMod;
CDemod *objDemod;
}
CSig :: CSig
{
bIsInitialised = false;
for (int i=0; i<MAX_NUM; i++)
{
PStrokePrev[i] = 0.0;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我丢弃时CSig objSig[50],测试运行正常.
我该怎么做才能解决这个问题?另外,我需要CSig objSig[50]在Base类中.
Mic*_*ele 11
我刚刚发现问题的方法是在Visual Studio中我去了Debug-> Exceptions,并检查了第一列中的所有内容.然后运行/调试您的单元测试,它将在问题所在的行上引发异常.这就是你需要调试/修复它的地方.
我在Visual Studio 2010中使用GoogleTest遇到了这个问题.我们的设置包括为GoogleTest框架创建一个库,然后将其与我们各自的单元测试相关联.我最近更新了Frameworks支持并从头开始重新编译它.执行此操作后,我遇到了上述异常.
经过一番挖掘后,我发现'Struct Member Alignment'设置是罪魁祸首:
项目属性>配置属性> C/C++>代码生成>结构成员对齐
当Frameworks项目将设置设置为"default"时,相应的Unit Test项目将其配置为"1 Byte/Zp1".一旦我将它们更改为具有相同的对齐方式,问题就消失了.
| 归档时间: |
|
| 查看次数: |
40914 次 |
| 最近记录: |