Differences From Artifact [3a5fb6fa17d9e24a]:
- File        
src/hack.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
To Artifact [23c3e51375a8c6a1]:
- File        
src/hack.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
    1  private import win32.ansi.windows;                                               |     1  private import core.sys.windows.windows;
    2                                                                                         2  
    3  // Hack!                                                                               3  // Hack!
    4  //                                                                                     4  //
    5  // _acrtused_dllが勝手に終了時に標準入出力ハンドルを                                                     5  // _acrtused_dllが勝手に終了時に標準入出力ハンドルを
    6  // 閉じちゃって困るので、その辺りだけは閉じないような                                                           6  // 閉じちゃって困るので、その辺りだけは閉じないような
    7  // CloseHandleを突っ込んで回避。いいのかこれ。                                                         7  // CloseHandleを突っ込んで回避。いいのかこれ。
    8                                                                                         8  
................................................................................................................................................................................
   22                  return Real_CloseHandle(h);                                           22                  return Real_CloseHandle(h);
   23          }                                                                             23          }
   24  }                                                                                     24  }
   25                                                                                        25  
   26  static this()                                                                         26  static this()
   27  {                                                                                     27  {
   28          Real_CloseHandle = cast(ClHnT)                                                28          Real_CloseHandle = cast(ClHnT)
   29                  GetProcAddress( GetModuleHandle("kernel32.dll"), "CloseHandle" ) |    29                  GetProcAddress( GetModuleHandleA("kernel32.dll"), "CloseHandle" 
   30          stdin  = GetStdHandle(STD_INPUT_HANDLE );                                     30          stdin  = GetStdHandle(STD_INPUT_HANDLE );
   31          stdout = GetStdHandle(STD_OUTPUT_HANDLE);                                     31          stdout = GetStdHandle(STD_OUTPUT_HANDLE);
   32          stderr = GetStdHandle(STD_ERROR_HANDLE );                                     32          stderr = GetStdHandle(STD_ERROR_HANDLE );
   33  }                                                                                     33  }