修正: strncpy 関数を呼び出す MSVCR90.dll ファイルを使用して x64 プラットフォーム用にビルドするように構成されているアプリケーションを実行するとエラー メッセージが表示されます。"'application_name で未処理の win32 例外が発生しました"

現象

Msvcr90.dll ファイルを使用して x64 プラットフォーム用にビルドするように構成されているアプリケーションがあります。 アプリケーションは strncpy 関数を呼び出します。 アプリケーションを実行すると、Visual Studio Just-In-Time デバッガー ウィンドウで次のエラー メッセージが表示される場合があります。

'application_name' で未処理の win32 例外が発生しました

呼び出し履歴をチェックすると、Msvcr90.dll ファイルでアクセス違反がトリガーされ、アプリケーションが strncpy 関数で応答を停止した可能性があります。 この問題は、以下の条件に該当する場合に発生します。

  • ソース バッファーは、割り当てられたページの末尾まで拡張されます。
  • このページの後の次のバイトは、実行中のプロセスに属していません。
  • コピーする長さは、8 の偶数倍数です。
  • コピーする長さは、ソース バッファーの最後のバイトを含みます。

原因

この問題は、strncpy 関数がソース バッファーの後の次のバイトにアクセスしようとするため発生します。 この問題は、一部の CRT ライブラリ関数の新しい最適化によって発生します。

解決策

修正プログラムの情報

サポートされている修正プログラムが Microsoft から入手できるようになりました。 ただし、この記事で説明されている問題のみを修正することを目的としています。 この特定の問題が発生しているシステムにのみ適用します。 この修正プログラムは、追加のテストを受け取る場合があります。 そのため、この問題の深刻な影響を受けない場合は、この修正プログラムを含む次の Visual Studio 2008 Service Pack を待機することをお勧めします。

この問題をすぐに解決するには、Microsoft カスタマー サポート サービスに問い合わせて修正プログラムを入手してください。 Microsoft カスタマー サポート サービスの電話番号とサポート コストに関する情報の完全な一覧については、次の Microsoft Web サイトを参照してください。

http://support.microsoft.com/contactus/?ws=support注 特殊なケースでは、サポート呼び出しに通常発生する料金は、Microsoft サポート Professional が特定の更新プログラムによって問題が解決されると判断した場合に取り消される可能性があります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。

前提条件

この修正プログラムを適用するには、Visual Studio 2008 Service Pack 1 がインストールされている必要があります。

再起動の必要性

この修正プログラムの適用後にコンピューターを再起動する必要はありません。

修正プログラムの置き換えに関する情報

この修正プログラムは、他の修正プログラムを置き換えるものではありません。

ファイル情報

この修正プログラムの英語版には、次の表に示すファイル属性 (またはそれ以降のファイル属性) があります。 これらのファイルの日付と時刻は世界協定時 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC とローカル時刻との時差を確認するには、[コントロール パネル] の [日付と時刻][タイム ゾーン] タブを使用してください。

ファイル名 ファイルのバージョン ファイル サイズ 日付 時刻 プラットフォーム
Atl90.dll 9.0.30729.162 159,552 2008 年 10 月 14 日 02:32 x86
Mfc90.dll 9.0.30729.162 5,084,480 2008 年 10 月 14 日 01:12 x64
Mfc90.dll 9.0.30729.162 3,766,080 2008 年 10 月 14 日 02:32 x86
Mfc90chs.dll 9.0.30729.162 36,680 2008 年 10 月 14 日 01:12 x64
Mfc90chs.dll 9.0.30729.162 36,680 2008 年 10 月 14 日 02:32 x86
Mfc90cht.dll 9.0.30729.162 37,704 2008 年 10 月 14 日 01:12 x64
Mfc90cht.dll 9.0.30729.162 37,704 2008 年 10 月 14 日 02:32 x86
Mfc90d.dll 9.0.30729.162 7,419,200 2008 年 10 月 14 日 01:12 x64
Mfc90d.dll 9.0.30729.162 5,934,912 2008 年 10 月 14 日 02:32 x86
Mfc90deu.dll 9.0.30729.162 64,328 2008 年 10 月 14 日 01:12 x64
Mfc90deu.dll 9.0.30729.162 64,328 2008 年 10 月 14 日 02:32 x86
Mfc90enu.dll 9.0.30729.162 54,600 2008 年 10 月 14 日 01:12 x64
Mfc90enu.dll 9.0.30729.162 54,600 2008 年 10 月 14 日 02:32 x86
Mfc90esn.dll 9.0.30729.162 62,792 2008 年 10 月 14 日 01:12 x64
Mfc90esn.dll 9.0.30729.162 62,792 2008 年 10 月 14 日 02:32 x86
Mfc90esp.dll 9.0.30729.162 62,792 2008 年 10 月 14 日 01:12 x64
Mfc90esp.dll 9.0.30729.162 62,792 2008 年 10 月 14 日 02:32 x86
Mfc90fra.dll 9.0.30729.162 63,816 2008 年 10 月 14 日 01:12 x64
Mfc90fra.dll 9.0.30729.162 63,816 2008 年 10 月 14 日 02:32 x86
Mfc90ita.dll 9.0.30729.162 62,280 2008 年 10 月 14 日 01:12 x64
Mfc90ita.dll 9.0.30729.162 62,280 2008 年 10 月 14 日 02:32 x86
Mfc90jpn.dll 9.0.30729.162 44,360 2008 年 10 月 14 日 01:12 x64
Mfc90jpn.dll 9.0.30729.162 44,360 2008 年 10 月 14 日 02:32 x86
Mfc90kor.dll 9.0.30729.162 43,848 2008 年 10 月 14 日 01:12 x64
Mfc90kor.dll 9.0.30729.162 43,848 2008 年 10 月 14 日 02:32 x86
Mfc90u.dll 9.0.30729.162 5,103,424 2008 年 10 月 14 日 01:12 x64
Mfc90u.dll 9.0.30729.162 3,781,440 2008 年 10 月 14 日 02:32 x86
Mfc90ud.dll 9.0.30729.162 7,464,264 2008 年 10 月 14 日 01:12 x64
Mfc90ud.dll 9.0.30729.162 5,980,488 2008 年 10 月 14 日 02:32 x86
Mfcm90.dll 9.0.30729.162 67,072 2008 年 10 月 14 日 00:50 x64
Mfcm90.dll 9.0.30729.162 59,904 2008 年 10 月 14 日 00:20 x86
Mfcm90d.dll 9.0.30729.162 93,184 2008 年 10 月 14 日 00:50 x64
Mfcm90d.dll 9.0.30729.162 80,896 2008 年 10 月 14 日 00:20 x86
Mfcm90u.dll 9.0.30729.162 67,072 2008 年 10 月 14 日 00:50 x64
Mfcm90u.dll 9.0.30729.162 59,904 2008 年 10 月 14 日 00:20 x86
Mfcm90ud.dll 9.0.30729.162 93,696 2008 年 10 月 14 日 00:50 x64
Mfcm90ud.dll 9.0.30729.162 80,896 2008 年 10 月 14 日 00:20 x86
Mfcmifc80u.dll 9.0.30729.162 14,152 2008 年 10 月 20 日 17:19 x86
Microsoft.visualc.stlclr.dll 9.0.30729.162 49,000 2008 年 10 月 20 日 17:19 x86
Msvcm90.dll 9.0.30729.162 225,280 2008 年 10 月 13 日 21:59 x86
Msvcm90.dll 9.0.30729.162 324,096 2008 年 10 月 13 日 22:36 IA-64
Msvcm90.dll 9.0.30729.162 245,760 2008 年 10 月 13 日 23:40 x64
Msvcm90d.dll 9.0.30729.162 312,832 2008 年 10 月 13 日 21:59 x86
Msvcm90d.dll 9.0.30729.162 429,568 2008 年 10 月 13 日 22:37 IA-64
Msvcm90d.dll 9.0.30729.162 333,312 2008 年 10 月 13 日 23:40 x64
Msvcp90.dll 9.0.30729.162 1,467,208 2008 年 10 月 14 日 00:56 IA-64
Msvcp90.dll 9.0.30729.162 854,344 2008 年 10 月 14 日 01:12 x64
Msvcp90.dll 9.0.30729.162 570,696 2008 年 10 月 14 日 02:32 x86
Msvcp90d.dll 9.0.30729.162 2,514,760 2008 年 10 月 14 日 00:56 IA-64
Msvcp90d.dll 9.0.30729.162 1,121,608 2008 年 10 月 14 日 01:12 x64
Msvcp90d.dll 9.0.30729.162 873,288 2008 年 10 月 14 日 02:32 x86
Msvcr90.dll 9.0.30729.162 1,504,584 2008 年 10 月 14 日 00:56 IA-64
Msvcr90.dll 9.0.30729.162 624,456 2008 年 10 月 14 日 01:12 x64
Msvcr90.dll 9.0.30729.162 653,640 2008 年 10 月 14 日 02:32 x86
Msvcr90d.dll 9.0.30729.162 3,599,688 2008 年 10 月 14 日 00:56 IA-64
Msvcr90d.dll 9.0.30729.162 1,349,960 2008 年 10 月 14 日 01:12 x64
Msvcr90d.dll 9.0.30729.162 1,178,440 2008 年 10 月 14 日 02:32 x86
Vcomp90.dll 9.0.30729.162 142,664 2008 年 10 月 14 日 00:56 IA-64
Vcomp90.dll 9.0.30729.162 57,672 2008 年 10 月 14 日 01:12 x64
Vcomp90.dll 9.0.30729.162 52,040 2008 年 10 月 14 日 02:32 x86
Vcomp90d.dll 9.0.30729.162 317,256 2008 年 10 月 14 日 00:56 IA-64
Vcomp90d.dll 9.0.30729.162 105,800 2008 年 10 月 14 日 01:12 x64
Vcomp90d.dll 9.0.30729.162 89,416 2008 年 10 月 14 日 02:32 x86
Vcomp90ui.dll 9.0.30729.162 11,592 2008 年 10 月 20 日 17:19 x86
Vcredist_ia64.exe 9.0.30729.162 4,712,272 2008 年 10 月 14 日 1,932 x86
Vcredist_x64.exe 9.0.30729.162 5,236,560 2008 年 10 月 14 日 1,936 x86
Vcredist_x86.exe 9.0.30729.162 4,496,208 2008 年 10 月 14 日 1,928 x86

回避策

この問題を回避するには、次のいずれかの方法を使用します。

  • 「現象」セクションに記載されている 4 つの条件のいずれかを変更します。

  • strncpy 関数を、memcpyfunction や lstrcpyn 関数など、同様の機能を持つ他の関数に置き換えます。

    注 これらのコピー関数は若干異なります。 たとえば、指定された長さの前に null バイトが検出された場合、memcpy 関数は文字列コピーを終了しません。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

追加情報

ソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

824684 Microsoft ソフトウェア更新プログラムの説明に使用される標準用語の説明