C++ Builder XE4, 10.2 Tokyo > 에러 메세지 윈도우 > 에러 메세지를 다른 소프트로부터 취득한다

운영 환경
C++ Builder XE4
RAD Studio 10.2 Tokyo Update 2 (追記: 2018/01/05)

관련



C++ Builder > 메모리가 부족합니다 (Abnormal Program Termination) > 재현 방법

처리



에러 메시지가 표시된 상태에서, 에러 메시지를 다른 소프트웨어로부터 취득한다.

참고 : h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 27260843 / 게 t-xt 보 x- ゔ ぅ 에 - an d 쇼 웬 t- s

answered Dec 2 '14 at 23:52
FelipeDurar

해당 HWND 값을 어떻게 얻는가?

Microsoft Spy++에서 확인한 결과, 에러 메시지는 아래와 같다.
  • 'OK'버튼
  • ''정적
  • '메모리가 부족합니다.'정적

  • 정책으로서는, 「Static의 다음의 Static」을 취득한다.

    참고 : Z 주문 창 가져 오기

    code



    Unit2.cpp
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit2.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm2 *Form2;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
        HWND winhwnd;
    
        winhwnd = FindWindow(NULL, L"Project1");
        if (winhwnd == NULL) {
            return;
        }
    
        HWND msghwnd = FindWindowEx(winhwnd, NULL, L"Static", NULL);
        HWND nexthwnd = GetWindow(msghwnd, GW_HWNDNEXT);
    
        HWND target = nexthwnd;
    
        int len = GetWindowTextLength(target) + 1;
        wchar_t text[100]; // 100: 任意の長さ
        GetWindowText(target, text, len);
        ShowMessage(text);
    }
    //---------------------------------------------------------------------------
    

    실행 예



  • C++ Builder > 메모리가 부족합니다 (Abnormal Program Termination) > 재현 방법 에서 빌드한 Project1.exe를 실행합니다.
  • Project1 양식의 버튼을 눌러 오류 메시지를 표시합니다.
  • 위의 코드를 빌드 한 소프트 Project2.exe를 실행
  • Project2 양식의 버튼을 누르십시오





  • 10.2 도쿄



    10.2 Tokyo에서도 작동했습니다.
    오류 메시지는 다릅니다.

    참고 : C++ Builder 10.2 Tokyo > Error: OleStr형에서 Date형으로의 변형형 변환은 할 수 없습니다.

    좋은 웹페이지 즐겨찾기