我需要使用win32帮助来欺骗一系列事件。语言:Ada。
我的所作所为:
p:integer := 4;
Type EvArr1 is array (1..p) of HANDLE;
procedure Start (Tid : in integer) is
Task T1;
task body T1 is
Bl:bool;
temp:Dword;
...
begin
...
Bl:=(EvArr1(Tid));
temp:=WaitForMultipleObjects(EvArr1, infinite);
...
end T1;
end start;
BEGIN
...
for i in 1..p loop
EvArr1(i) := CreateEvent(null, 1, 0, null); -- error
EvArr2(i) := CreateEvent(null, 1, 0, null); -- error
start(i);
end loop;
错误:
这些类型不可转换;操作数类型必须是数组类型,继续
答案 0 :(得分:1)
如声明的那样,EvArr1
是一种类型,而不是一种对象。
尝试
EvArr1 : array (1 .. p) of HANDLE;
或
type Event_Array is array (1 .. p) of HANDLE;
EvArr1 : Event_Array;
如果您想要具有该类型参数的子程序/条目,则第二个是好的。更好的是,
type Event_Array is array (Positive range <>) of HANDLE;
EvArr1 : Event_Array (1 .. p);