[Win 10上的VC6调试,当另一个DLL中的一个DLL给用户断点命中时

问题描述 投票:0回答:1

我刚刚安装了一台Windows 10机器,因为现在Windows 7已被丢弃...以及旧的经典VC6。加上Service Pack 6,并安装了Platform SDK。数十年来,我一直在Windows 7机器上以这种方式使用它,没有任何问题(太久了,为什么不升级到VS 2010、2012、2015、2017、2019,yada yada,yada ... )

我提出了我在年底之前从事的现有项目。大exe,其中包含多个DLL,C ++对象等...在1月1日之前一切正常。

在新安装的Windows 10上,当我尝试在调试器中启动它时,出现了错误:

User Breakpoint Called

甚至在main之前]被调用时也会出现。并且可执行文件立即存在,甚至在出现消息框之前,也就没有要检查的堆栈跟踪。自然地,我寻找任何可能会破坏事物的C ++构造函数。但是没有。 (而且在我的Windows 7计算机上也从来没有任何问题)

我将其缩小为以下条件:主EXE静态链接到LIB / DLL。该dll静态链接到另一个LIB / DLL当我删除底层的DLL依赖性时,可以在调试器中运行可执行文件。

我发现有几个项目正在经历这个。

我有一个测试项目(dsw和dps文件),如果有人想看的话,至少可以在Windows 10计算机上进行演示。它被剥夺了外壳。链接到DLL的EXE,DLL链接到另一个DLL。如果在链接阶段删除内部DLL依赖项,则具有单个DLL的可执行文件可以正常工作。

此外,EXE也将在调试器之外运行。调试和发布。

最后,当我将配置设置为发布时,它也在IDE中运行,但是没有调试信息。但是,如果我在发行版中启用调试信息,则启动前它将再次崩溃。

因此,显然Windows 10中有某些东西阻止调试容器运行。我还禁用了“容错堆填充”,但没有更改。

有人遇到过这样的事情吗?

有人有什么建议吗?

-Scotty

我刚刚安装了一台Windows 10机器,因为现在Windows 7已被丢弃...以及旧的经典VC6。加上Service Pack 6,并安装了Platform SDK。我一直在以这种方式使用它......>

dll windows-10 visual-c++-6
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.