请教程序调试?(100分)

  • 主题发起人 主题发起人 xuekunli
  • 开始时间 开始时间
X

xuekunli

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序使用了多线程(3个线程)和DLL等。在Delphi中调试时能正常运行。但在Delphi以外
的Windows环境中运行时,有时会出现以下的错误提示'0X025cf090指令引用的0X013f4000内存,
该内存不能为Read。',有时又能正常运行,不出错。请问:我应如何去发现我的问题出在哪里?
 
一般情况下应该是你的线程保护的原因:
使用Synchronize进行线程同步,其实Delphi的多线程还是基于一个Application对象的。
下面是Delphi帮助中的例子
This example shows how to call a button抯 click method in a thread-safe manner:

procedure TMyThread.PushTheButton;

begin
Button1.Click();
end;

procedure TMyThread.Execute;
begin
...
Synchronize(PushTheButton);
...
end;
 
难说亚,奇怪
 
该种情况一般在Win2K及以上系统会出现。不一定是多线程的问题。
 
后退
顶部