【发布时间】:2010-07-20 12:57:03
【问题描述】:
我有一个非常简单的 Delphi 2010 dll,我从 Visiual Studio 2008 C ATL 控制台应用程序加载(MVF GUI 应用程序也不起作用)。当我直接从 IDE 调试控制台应用程序时 - 没有断点 - 应用程序的输出不正确,但是当我直接运行应用程序或使用调试器附加到进程时,它可以 100% 工作。从 Delphi 控制台应用程序调试相同的 dll(即从 IDE 运行它)也可以。
VS 调试器似乎会破坏应用程序,具体取决于您运行它的方式。 VS2010 也一样!
我已经 100% 确定了 - 好几次了! - dll 导出的数据类型和调用约定与控制台应用程序中的数据类型和调用约定匹配。我可以更详细地介绍,但我不想将此事与可能不相关的信息混淆。如果我提供的内容还不够,请告诉我是否必须详细说明代码。
有没有人经历过这种事情并且知道如何解决它?
【问题讨论】:
-
Gerhard,您检查过并行化问题/竞争条件吗? (这是一个多线程应用程序吗?)。此外,如果您使用 delphi/dll 等标记您的问题,您可能会针对更好的受众。
-
两种情况的输出有什么区别?调试器改变了各种各样的东西;时间肯定会有所不同,但其他事情也可能有所不同。我们需要您提供一些额外信息,以便了解行为的不同方向。
标签: delphi debugging visual-studio-2008