2

これが何が起こっているかです。CDialog 拡張クラスから AfxMessageBox を実行しようとすると、エラーが発生します (以下を参照)。私はインターネットをグーグルで検索しましたが、不足しています。これはメッセージボックスが失敗する唯一の場所であり、残りのコードが機能することはわかっています (ステップスルーしました)。

これを修正する方法を知っている人はいますか?

前もって感謝します!

AFXMESSAGEBOX が開いたときのエラー メッセージ:

IsoPro.exe の 0x014b4b70 で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x34333345。

CDialog 内から AfxMessageBox を起動するコード

LPTSTR temp;
mainPassword.GetWindowText((LPTSTR)temp,100);
CString cstr;
cstr.Format("mainPassword = %s",temp);
AfxMessageBox(cstr);

CDialog を表示するコード:

CEnterpriseManagementDialog* emd = new CEnterpriseManagementDialog();
emd->Create(IDD_ENTERPRISE_MANAGEMENT_DIALOG);
emd->ShowWindow(SW_SHOW);
4

2 に答える 2

1

変数 temp は初期化されていないポインターのようです ( LPTSTR の定義はchar * です)。

代わりに temp を配列として定義してみてください:

TCHAR temp[64];
于 2016-11-23T19:55:10.313 に答える