Ignore:
Timestamp:
Jul 11, 2008, 1:24:57 AM (16 years ago)
Author:
イグトランス (egtra)
Message:

細かい修正。
Str$にStringを受け取る多重定義を追加した。
複数libを作るバッチで、コンパイルエラーが発生したら以後のビルドを行わないようにした。
Threadクラスの_beginthreadexをCreateThreadへ変更した。
ole2.abを全体が使える古い版へ戻した。
SendMessageCallback/SendMessageTimeoutを追加した。
GCHandleで登録が解除されない状態が起こる問題を直した。

Location:
trunk/ab5.0/ablib/src/Classes/System
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/ablib/src/Classes/System/Runtime/InteropServices/GCHandle.ab

    r388 r536  
    88Public
    99    Function Target() As Object
    10         Dim pobj = VarPtr(handle) As *Object
    11         Return pobj[0]
     10        Target = _System_PtrObj(handle)
    1211    End Function
    1312
    1413    Sub Target(obj As Object)
     14        If handle <> 0 Then
     15            Dim i = allocated.IndexOf(Target())
     16            'assert(i <> -1)
     17            allocated[i] = obj
     18        End If
    1519        allocated.Add(obj)
    1620        handle = ObjPtr(obj)
  • trunk/ab5.0/ablib/src/Classes/System/Threading/Thread.ab

    r532 r536  
    1919
    2020Enum ThreadState
    21     'スレッド状態に AbortRequested が含まれ、そのスレッドは停止していますが、状態はまだ Stopped に変わっていません。 
     21    'スレッド状態に AbortRequested が含まれ、そのスレッドは停止していますが、状態はまだ Stopped に変わっていません。
    2222    Aborted
    23     'スレッド上で Thread.Abort メソッドを呼び出しますが、そのスレッドの終了を試みる保留中の System.Threading.ThreadAbortException をスレッドが受け取っていません。 
     23    'スレッド上で Thread.Abort メソッドを呼び出しますが、そのスレッドの終了を試みる保留中の System.Threading.ThreadAbortException をスレッドが受け取っていません。
    2424    AbortRequested
    25     'スレッドは、フォアグラウンド スレッドではなく、バックグランド スレッドとして実行します。この状態は、Thread.IsBackground プロパティを設定して制御されます。 
     25    'スレッドは、フォアグラウンド スレッドではなく、バックグランド スレッドとして実行します。この状態は、Thread.IsBackground プロパティを設定して制御されます。
    2626    Background
    27     'スレッドをブロックせずに起動します。保留中の ThreadAbortException もありません。 
     27    'スレッドをブロックせずに起動します。保留中の ThreadAbortException もありません。
    2828    Running
    29     'スレッドを停止します。 
     29    'スレッドを停止します。
    3030    Stopped
    31     'スレッドの停止を要求します。これは、内部でだけ使用します。 
     31    'スレッドの停止を要求します。これは、内部でだけ使用します。
    3232    StopRequested
    33     'スレッドを中断します。 
     33    'スレッドを中断します。
    3434    Suspended
    35     'スレッドの中断を要求します。 
     35    'スレッドの中断を要求します。
    3636    SuspendRequested
    37     'スレッド上に Thread.Start メソッドを呼び出しません。 
     37    'スレッド上に Thread.Start メソッドを呼び出しません。
    3838    Unstarted
    39     'スレッドがブロックされています。これは、Thread.Sleep または Thread.Join の呼び出し、ロックの要求 (たとえば、Monitor.Enter や Monitor.Wait の呼び出しによる)、または ManualResetEvent などのスレッド同期オブジェクトの待機の結果である可能性があります。   
     39    'スレッドがブロックされています。これは、Thread.Sleep または Thread.Join の呼び出し、ロックの要求 (たとえば、Monitor.Enter や Monitor.Wait の呼び出しによる)、または ManualResetEvent などのスレッド同期オブジェクトの待機の結果である可能性があります。
    4040    WaitSleepJoin
    4141End Enum
     
    144144        End If
    145145    End Function
    146    
     146
    147147    'Priority Property
    148148    Sub Priority(value As ThreadPriority)
     
    177177
    178178    Sub Start()
    179         Dim ThreadId As DWord
    180         m_hThread=_beginthreadex(NULL,0,AddressOf(_run),VarPtr(This),CREATE_SUSPENDED,m_dwThreadId)
     179        Dim pfn = AddressOf(_run) As LONG_PTR
     180        m_hThread=CreateThread(NULL,0,pfn As LPTHREAD_START_ROUTINE,VarPtr(This),CREATE_SUSPENDED,m_dwThreadId)
    181181        SetThreadPriority(m_hThread,m_Priority)
    182182        This.Resume()
     
    216216    /*------------------------ クラス内部用 --------------------------*/
    217217Private
    218     Function Cdecl _run() As Long
     218    Function _run() As Long
    219219        '------------
    220220        ' 前処理
Note: See TracChangeset for help on using the changeset viewer.