我在重新编译某个单元(MyClass)后收到访问冲突,除非我干净。错误显然是对空对象的调用(写入地址00000000),但是当我尝试跳到它时,编译器将不允许我进入我认为错误发生的代码。 (在同一个对象的方法内部。当我跟踪到方法时,在进入跟踪之后但在进入代码行之前出现错误。)这发生在MyClass的已使用单元中,而不是MyClass本身。
奇怪的是,如果我执行干净(或构建)然后重新编译,程序运行正常。这会发生什么原因?
更新
该应用程序使用通过AsyncCalls库创建的多个线程。我使用了几个TEvent
和TMultiReadExclusiveWriteSynchronizer
对象来保持进程的顺序和资源的保护。在创建或释放此类对象时是否需要特别小心?
答案 0 :(得分:1)
请检查项目设置中的输出路径。 为已编译的单位设置输出路径(例如“。\ $(Config)\ _dcu”),然后再次检查。