gpt4 book ai didi

debugging - 对使用共享 MFC 核心 DLL 的 MFC 项目使用 CTrace::SetLevel

转载 作者:行者123 更新时间:2023-12-05 06:23:00 25 4
gpt4 key购买 nike

我有一个使用共享 MFC DLL (MFC140UD.DLL) 的 MFC 项目。

我想在我的调试版本中将跟踪级别设置为级别 4,以获取有关消息泵送的更多信息。

但是在我的代码中使用 CTrace::SetLevel,只是在我的个人模块(我的 EXE 文件)中设置 CTrace 对象的调试级别。 CTrace 被声明为 __declspec(selectany)。在 MFC140UD.LIB 的导出符号中,我看不到类 CTrace 或其成员的导出。

因此使用CTrace::SetLevel 对MFC 核心MFC140UD.DLL 没有影响。我总是必须在 atltrace.h 中设置一个断点,并且需要在调试器中修改静态 m_nLevel 值。

从外部 MFC EXE 访问 MFC 核心 DLL 中的 CTrace::m_nLevel 值是否有任何技巧?

注意:旧的 AtlTraceTool 东西也不再有效,不再受支持。

最佳答案

应该不可能从外部 MFC EXE 访问 MFC 核心 DLL 内的 CTrace::m_nLevel 值。每个模块都有自己的 CTrace 类实例,也就是说,您应该在每个模块的上下文中将静态成员变量 CTrace::m_nLevel 设置为适当的值。因此,当您使用共享 MFC DLL 时,恐怕无法从您自己的模块中配置 MFC140UD.DLL 中的跟踪级别。

您可以尝试调用 API AtlTraceModifyModule 来设置 MFC140UD.dll 的跟踪级别。

关于debugging - 对使用共享 MFC 核心 DLL 的 MFC 项目使用 CTrace::SetLevel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58744319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com