Visual C++ Microsoft Foundation Classes (MFC):
MFC40.DLL および MFC40U.DLL
このツールで「マイクロソフト西暦 2000 年対応」に準拠するアプリケーションを構築できますか ?
可能
メモ : ただし、適切なソフトウェアの修正プログラムおよびサービスパックが適用されていることを前提とします。
既知の問題
COleDateTime::= 演算子には、C ランタイムの time_t データ型を使用するオーバーライドがあります。このデータ型では、1970 年 1 月 1 日から 2038 年 1 月 18 日までの日付しか表すことができません。2000 年 1 月 1 日移行にこの演算子を使用すると、COleDateTime オブジェクトでは、2000 年ではなく、100 年が返されます。
この問題は、MFC40.DLL および MFC40U.DLL の最新バージョンでは修正されています。これらのファイルを再頒布する場合、バージョン 4.1.6140(Intel版) 以降であるか確認する必要があります。Alpha プラットフォーム用はバージョン 4.1.6200 です。
詳細は、サポート後術情報
J047851 を参照してください。
日付の処理
MFC には、CTime クラスおよび COleDateTime クラスがあります。
CTime では、1970 年 1 月 1 日から 2038 年 1 月 18 日までの表示を表すことができます。これは、CTime は、基本的には下層の C ランタイム ライブラリと同じ制約を受けるためです。
COleDateTime では、オートメーションで使用される DATE データ型が使用され、100 年 1 月 1 日から 9999 年 12 月 31 日までの日付を表すことができます。
下 2 桁の西暦の処理
MFC 4.1 までの COleDateTime オブジェクトは、下 2 桁の西暦を指定して作成することができます。この方法でオブジェクトを作成すると、その年は 1900 年代と見なされます。そのため、2000 年以降に年を 95 に指定して COleDateTime オブジェクトを作成した場合では、オブジェクトは 1995 年を表します。
ランタイム ライブラリとツールで、あいまいな日付の処理や西暦の見なし処理が行われないようにするためには、完全な西暦を指定することを推奨します。
西暦2000年問題に対応するアプリケーションの開発について
MFC40.dll または MFC40u.dll のどちらかを使用するアプリケーションが 2000 年以降に正常に動作するためには、これらのファイルのバージョン 4.1.6140 が必要です。このバージョンの MFC40(u).dll は依存するオペレーティング システムの最新のサービス パックまたは西暦 2000 年問題の修正プログラムおよび Windows 95 西暦 2000 年問題修整プログラムに収録されています。Visual C++ 4.x
をご利用の開発者むけには、再頒布可能な西暦 2000
年問題対応アップデートが公開されており、このアップデートを Windows NT 3.51 Service Pack 5、Windows NT 4.0、Windows 95 および Windows 98 環境に適用することができます。
プログラム開発における一般的な西暦2000年問題について
ガイドラインと推奨事項
以下のホワイトペーパーをご覧ください。
「Cランタイム ライブラリと西暦2038年問題」「ANSI TimeおよびVisual C++ ライブラリ」「Visual C++ と西暦2000年」「CTime」「オートメーションライブラリと西暦 2000 年」
|