3

我重新编译某个单元(MyClass)后收到访问冲突,除非我进行清理。该错误显然是对空对象的调用(地址写入 00000000),但是当我尝试单步执行时,编译器不允许我单步执行我认为发生错误的代码。(在同一对象的方法内。当我跟踪该方法时,在跟踪到该方法之后但在转到代码行之前出现错误。)这发生在 MyClass 的使用单元中,而不是 MyClass 本身。

奇怪的是,如果我进行清理(或构建)然后重新编译,程序运行良好。有什么理由会发生这种情况?

更新

该应用程序使用通过 AsyncCalls 库创建的多个线程。我使用几个TEventTMultiReadExclusiveWriteSynchronizer对象来保持流程有序并保护资源。创建或释放此类对象时是否需要特别注意?

4

1 回答 1

1

请检查项目设置中的输出路径。为已编译的单元设置一个输出路径(例如“.\$(Config)\_dcu”),然后再次检查。

于 2012-10-16T00:04:20.660 回答