この資料は以下のエディションについて説明したものです。
Enterprise、Professional、および Learning Edition
このツールで「マイクロソフト西暦 2000 年対応」に準拠するアプリケーションを構築できますか ?
可能
メモ : ただし、適切なソフトウェアの修正プログラムおよびサービスパックが適用されていることを前提とします。
日付の処理
Visual C++
5.0
では、以下のデータ型が使用されます。
データ型 |
範囲 |
time_t |
1970 年 1 月 1 日から 2038 年 1 月 18 日まで |
DATE VARIANT |
100 年 1 月 1 日から 9999 年 12 月 31 日まで |
struct FILETIME |
1601 年から 58,457,005 年まで (64ビット値) 100ナノ秒間隔 |
struct tm |
1900 年 1 月 1 日から 2147483647 年 12 月 31 日まで |
struct SYSTEMTIME |
符号のない 16 ビット値による西暦 0 年以降の年 |
SQL_DATE & SQL_TIMESTAMP (ODBC) |
1970 年 1 月 1 日から 9999 年 12 月 31 日まで |
既知の問題
システム クロックが2000年に設定されている場合に、MFC (Microsoft Foundation Class) AppWizardアプリケーションを作成すると、バージョン情報 ダイアログ上の Copyright情報が “1900” になります。この問題は、作成されたプログラムの動作には直接影響しませんが、不要な混乱を避けるためにリソース エディタを使用して修正してください。
MFC サンプル chkbook で問題が見つかりました。Visual C++ 6.0 に収録されていたサンプルが MSDN ライブラリ 2000 年 1 月版でアップデートされます。chkbook の問題は、日付を 4 桁の西暦を処理するための領域がない文字列として保存されるため、日付が 2 桁の西暦で作成されることです。
バージョン 4.0 以降 6.00.8397.0 より前の C ランタイム ライブラリには、夏時間の補正機能に障害があります。このライブラリを利用するアプリケーションでは、オペレーティング システムで表示される正しい時刻よりも現在の時刻が 1 時間遅れているかのように動作する可能性があります。この問題は、2001 年 4 月 1 日〜 2001 年 4 月 8 日までの 1 週間継続しますが、これらのアプリケーションが夏時間に移行した後はオペレーティングシステムの時刻に同期します。これは西暦 2000 年問題ではなく、夏時間に関する問題です。この現象は、1973 年、1979 年、1984 年、1990 年、2001 年、2007 年、2012 年、2018 年、2029 年、および 2035 年に発生します。これらの年で共通なのは、4 月 1 日が日曜日ということです。この問題は Visual Studio 6.0 Service Pack 3にて解決されており、Windows のアップデート モジュールとしても提供される予定です。
メモ : Visual C++ 製品の CD-ROM に含まれている InstallShield のバージョンの対応ステータスについては、InstallShield の Web ページhttp://www.installshield.com/products/y2k/ を参照してください。
下 2 桁の西暦の処理
SQL デバッグ/ Visual DataBase Tools については、それぞれの製品ガイドを参照してください。
マイクロソフト以外のコンポーネント (このページでは説明しません)
Oracle ODBCドライバ
”TimeLock” timebombコンポーネント (デモ版のみで使用)
InstallShield
製品には、ユーザーがアプリケーション構築に使用できる Visual C++ 以外のコンポーネントも含まれます (このページでは説明しません)。
ODBC、OLE DB (Data Accessグループ)
月間予定表コントロール、Accessカレンダー コントロール (Officeグループ)
オートメーション ライブラリ
MS Month Viewコントロール、DBグリッド コントロール、DBコンボ コントロール、DBリスト コントロール、データ グリッド コントロール、データコンボ コントロール、データ リスト コントロール、フレキシブル グリッド コントロール、階層フレキシブル グリッド コントロール (Visual Basicグループ)
データベース エンジン (DAO、Access Jet)
コンポーネント ギャラリー : ステータス バー
プログラム開発における一般的な西暦2000年問題について
ガイドラインと推奨事項
以下のホワイトペーパーをご覧ください。
「Cランタイム ライブラリと西暦2038年問題」「ANSI TimeおよびVisual C++ ライブラリ」「Visual C++ と西暦2000年」「CTime」「オートメーションライブラリと西暦 2000 年」
|