debugging - 对使用共享 MFC 核心 DLL 的 MFC 项目使用 CTrace::SetLevel
问题描述
我有一个使用共享 MFC DLL (MFC140UD.DLL) 的 MFC 项目。
我想将调试版本中的跟踪级别设置为级别 4,以获取有关消息泵送的更多信息。
但是CTrace::SetLevel
在我的代码中使用,只需在我的个人模块(我的 EXE 文件)中设置 CTrace 对象的调试级别。CTrace
ist 声明为__declspec(selectany)
. 在 MFC140UD.LIB 的导出符号中,我看不到该类CTrace
或其成员的导出。
所以使用CTrace::SetLevel
对MFC核心MFC140UD.DLL没有影响。我总是必须在 atltrace.h 中设置断点,并且需要在调试器中修改静态 m_nLevel 值。
有什么技巧可以CTrace::m_nLevel
从我的外部 MFC EXE 访问 MFC 核心 DLL 中的值吗?
注意:旧的AtlTraceTool
东西也不再工作和支持。
解决方案
从外部 MFC EXE 访问 MFC 核心 DLL 内的 CTrace::m_nLevel 值应该是不可能的。每个模块都有自己的 CTrace 类实例,也就是说,您应该在每个模块的上下文中将静态成员变量 CTrace::m_nLevel 设置为适当的值。因此,当您使用共享的 MFC DLL 时,恐怕您无法从自己的模块中配置 MFC140UD.DLL 中的跟踪级别。
您可以尝试调用 API AtlTraceModifyModule 来设置 MFC140UD.dll 的跟踪级别。
推荐阅读
- php - 添加`$b ?? []` 到 PHP 中的数组
- ios - UINavigationBar 自定义颜色细线边框
- ios - 界面生成器中的 iOS 阴影视图
- r - 使用 dplyr 将开始和结束日期扩展到不平衡的每月面板
- android - 尝试使用 FirebaseUI RecylerView 显示数据时应用程序崩溃
- javascript - 将数据从php导出到html网页
- r - R-一种方法anova提取p_value
- sql - golang db.ping()
- python-3.x - Outlook FreeBusy 方法给出不正确的输出
- ios - 禁用从 UITabBarController 滑动