高手请进!奇怪的异常!是因为我用的盗版D7的原因吗?回答正确的我的全部分都送出!(200分)

H

hebiao

Unregistered / Unconfirmed
GUEST, unregistred user!
下面的代码在编译时就会出现奇怪的异常!

unit Heartbeat;

interface

uses Windows;

var
TheProc: procedure of object;

implementation

const
Frequency = 100
// 100 ms = 10 beats per second

var
TimerID: Integer;
InProc: Boolean;

procedure HeartBeatProc (Wnd: hWnd
Msg, Event, dwTime: Integer)
stdcall;
begin
if (Assigned (TheProc)) and (InProc = False) then begin
InProc := True;
try
TheProc;
finally
InProc := False;
end;
end;
end;

initialization
SetTimer (0, 0, Frequency, @HeartBeatProc);
finalization
KillTimer (0, TimerID);
end.

异常是:[Warning] Heartbeat.pas(32): Unsafe code '@ operator'
[Fatal Error] Heartbeat.pas(40): Could not create output file
'H:/Work/Articles/The Delphi Magazine/This Month/Heartbeat.dcu'
第一个警告我明白,但是第二个我就不明白了!总共代码就没有第40行!!!
 
D

DarwinZhang

Unregistered / Unconfirmed
GUEST, unregistred user!
你在光盘或者在不可写的地方(比如磁盘写满了)编译了文件。
将源程序文件另存为其它地方或者....
 
A

aizb

Unregistered / Unconfirmed
GUEST, unregistred user!
请确认
1、H:盘不是光盘或者其他不可写驱动器;
2、H:/Work/Articles/The Delphi Magazine/This Month/文件夹存在;
3、H:/Work/Articles/The Delphi Magazine/This Month/Heartbeat.dcu不是只读文件(如果存在的话).
4、当前操作系统用户对H:/Work/Articles/The Delphi Magazine/This Month/文件夹具有写权限;
5、当前操作系统用户对H:/Work/Articles/The Delphi Magazine/This Month/Heartbeat.dcu文件具有写权限;

解决办法:
把整个项目Copy到可写的存在的文件夹中编译;或者设置:Delphi->Project->Opations->Directories/Conditionals->Output directory和Unit output director为可写文件夹。
 
C

CaoAizu

Unregistered / Unconfirmed
GUEST, unregistred user!
也许有其他程序正在使用Heartbeat.dcu
 
Z

zjan521

Unregistered / Unconfirmed
GUEST, unregistred user!
同意aizb
你的非常可能是路径不存在或只读
 
L

leizengzheng

Unregistered / Unconfirmed
GUEST, unregistred user!
呵呵,你的源代码是只读的。
 
M

muhaifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
呵呵,aizb把问题的解决办法都说清楚了,原因很简单,.pas文件被编译后会生成一
个.dcu文件,如果没有这个文件的话他会自动生成一个,如果有的话他会覆盖原来的。
你的错误报告是不可创建这个dcu,很显然不是目录不存在就是已经有的这个dcu不可写嘛。
 
Z

zx8

Unregistered / Unconfirmed
GUEST, unregistred user!
同意楼上
 
H

helegend

Unregistered / Unconfirmed
GUEST, unregistred user!
H

hebiao

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 
顶部