1

私はwin32の助けを借りて一連のイベントをだます必要があります。言語:エイダ。

私がやること:

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;

エラー:

タイプは変換できません。オペランドタイプは配列タイプである必要があります。

4

1 に答える 1

1

宣言されているようEvArr1に、オブジェクトではなく型です。

試す

EvArr1 : array (1 .. p) of HANDLE;

また

type Event_Array is array (1 .. p) of HANDLE;
EvArr1 : Event_Array;

タイプのパラメータを持つサブプログラム/エントリが必要な場合は、2 番目の方法が適しています。さらに良いことに、

type Event_Array is array (Positive range <>) of HANDLE;
EvArr1 : Event_Array (1 .. p);
于 2012-04-22T19:51:52.447 に答える