JMc*_*rty 11 dll unit-testing c++-cli visual-studio-2010
我使用Visual Studio 2010的单元测试框架遇到了一些问题.目前,QTAgent32将在测试执行完成后维护对DLL的引用.
有问题的DLL是围绕一些本机c ++代码的c ++/cli包装器.包装器公开的对象实际上从未由托管代码分配.它唯一的参考是在处理过程中进行最后检查,以确定它是否在课程的生命周期中设置.
If(_obj != null)
{
_obj.Dispose();
_obj = null;
}
Run Code Online (Sandbox Code Playgroud)
我知道这是事实,因为如果我单步执行代码并观察调试器控制台输出,我可以看到DLL的符号没有加载,直到命中if(这是有意义的).涉及的所有托管对象都实现了IDisposable,以确保所有本机对象都得到谨慎以避免内存泄漏.
基于这个问题:QTAgent32保持文件打开 我确保没有显式打开文件流(包括控制台),甚至没有使用任何文件但问题仍然存在.关于该怎么做,我的想法已经不多了.
有人可以帮忙吗?
TL; DR: QTAgent32.exe保持对从未实例化的c ++/cli包装器的开放引用.
ryb*_*103 11
我在使用Fortran DLL时遇到了同样的问题.即使DLL函数完全为空,问题仍然存在.
我仍然不知道问题是什么,但一个简单的解决方法是指定杀死QTAgent32进程作为项目中的预构建事件.
taskkill /f /im QTAgent32.exe
exit 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4429 次 |
| 最近记录: |