動作環境
C++ Builder XE4
Windows 7 Pro (32bit)
「メモリが足りません」もしくは「Abnormal Program Termination」というエラーはどの場合に出るのか。
code
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDateTime dt1 = VarToDateTime(L"2017/12/21 14:20");
}
//---------------------------------------------------------------------------
エラーの発生手順は以下。
- 上記のソフトをビルドして、日本語Windows 7環境で実行する
- ボタンを押す
英語OS環境
英語版のWindows 7環境では「Abnormal Program Termination」になるのではないだろうか。
What Causes "Abnormal Program Termination"
(2) There is not enough memory to expand the stack.
現在見つかっている「Abnormal Program Termination」に対して、その解決の糸口をどのように見つけるか。
VarToDateTime
指定されたバリアントを TDateTime 値に変換します。
Lプリフィックスにすると、バリアントの認識に失敗するのかもしれない。
いったん、String型変数において、VarToDateTime()を使う場合はエラーにはならない。