Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2011 / 8月

オフラインファイルのタイムスタンプ

サーバがオフラインの時に,サーバ上のファイルを WinFile.exe で移動
 この時,更新日時が,移動(実際は同期)した日時に変更されてしまう?
 クライアント,サーバ共に Win XP SP3.


  にほんブログ村 IT技術ブログへ


CHttpFile を利用した読込みで,…

CHttpFile を利用した読込みで,接続されていなくても ReadString でそれなりに戻ってくることがあった?

以下は,あるサイトが応答しているかどうかを確認するコードの断片.
  #define W_M_P_C_ _T(“http://www.??????.com/”)
  CString rData ;
  if (!canConnectWeb && InetFile::Read(W_M_P_C_,rData)) {
    if (rData.Find(K_M_P_C_) > 0) { canConnectWeb = TRUE ; }
    connectdSite = W_M_P_C_ ;
    }

アクセスする url に,ダブらないような情報を付加することで回避.
  CString para = _T(“?_q_=”) + ::ToString(::GetTickCount()) ;
  if (!canConnectWeb && InetFile::Read(W_M_P_C_+para,rData)) {
    if (rData.Find(K_M_P_C_) > 0) { canConnectWeb = TRUE ; }
    connectdSite = W_M_P_C_ ;
    }


  にほんブログ村 IT技術ブログへ


2038 対応

以下の様なコードの所では,VC 7 までは 2038 に対応していない.
time_t ????::Get???? (void)
{
  ….
  time_t term = 0 ;
  #if(_MFC_VER >= 0x0800)
    ReadBlock(…,sizeof(__time32_t)/sizeof(WORD)) ;
    __time32_t* dateBuffer = (__time32_t*)Get????Buffer() ;
    __time32_t term32 = *dateBuffer ;
    term = UINT(term32) ;
  #else
    ReadBlock(…,sizeof(time_t)/sizeof(WORD)) ;
    time_t* dateBuffer = (time_t*)Get????Buffer() ;
    term = *dateBuffer ;
  #endif
  return term ;
  }
0x7fffffff までは問題ないが,2038 を超えると VC 7 の場合,-2147483648 になる.
VC 7 LocTim64.c では,以下の様になっている.
  if ( (*ptime _MAX__TIME64_T) )
    return( NULL );
VC 6 では,long のため範囲外(LocalTim.c など)となる.
VC 8 では,2038/01/19 と認識できる.
なんで VC 8 で #ifdef としたのか?古いことなので覚えてないが,VC 7 では一部うまくないことがあったため 2038 には対応しないとした?


  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。