outputdebugstring 예제

예를 들어 {fmt} 또는 인쇄물 – J. Galowicz에 의해 : 여기에 도움이 될 수있는 다른 libs도 있습니다. Delphi 응용 프로그램을 실시간으로 모니터링하고 로그 메시지를 볼 수 있기를 원한 적이 있습니까? 물론 당신은 항상 RAD 스튜디오 IDE 내부의 전체 디버그 모드에서 실행할 수 있습니다. 또 다른 방법은 로그 메시지를 텍스트 파일로 출력하는 것입니다. OutputDebugString 함수를 사용할 수도 있습니다. cppreference/source_location에서 채택된 기본 예제는 다음과 같습니다: 자세한 내용은 http://www.unixwiz.net/techtips/outputdebugstring.html 응용 프로그램에서 디버그 메시지를 캡처하려면 이 4개의 커널을 만들거나 열어야 합니다. 공유 메모리를 모니터링하는 작업을 만듭니다. 데이터가 준비되면 작업이 데이터를 보냅니다. 아래 그림은 응용 프로그램 자체로 캡처한 디버그 메시지를 보여 주었습니다. Visual Studio(msdn 참조)에서는 코드에서 사용할 수 있는 미리 정의된 매크로입니다. 이름에서 볼 수 있듯이 소스 코드의 파일 이름과 지정된 변환 단위의 정확한 줄로 확장됩니다. __FILE__ 매크로를 제어하려면 컴파일러 옵션 /FC를 사용할 수 있습니다.

이 옵션을 사용하면 파일 이름이 더 길어지거나(전체 경로) 짧아집니다(솔루션 dir에 비해). /FC는 편집 및 계속을 사용할 때 암시됩니다. 클래스 CWinDebugMonitor는 하나의 공용 가상 메서드를 가지고 있습니다: OutputWinDebugString, 개발자는 CWinDebugMonitor에서 파생된 클래스를 선언하고 캡처된 모든 디버그 문자열을 처리하는 가상 메서드를 구현할 수 있습니다. 디버깅 메시지를 보내려는 응용 프로그램은 뮤텍스를 기다렸다가 획득하는 기능만 있으면 되며 이는 SYNCHRONIZE 오른쪽으로 표시됩니다. 위의 권한은 모든 사용자가 이러한 방식으로 참여할 수 있도록 완전히 올바릅니다. 이와 같은 값을 입력하는 것은 매우 좋은 디버깅 방법이지만 항상 버퍼를 선언하고 sprintf를 사용하여 전달된 문자열에서 수행하는 함수를 만드는 것은 아닙니다. 이를 위해 C의 변수 매개 변수 기능을 사용해야합니다. MyOutputFunction(“float 값은 %f 문자열은 %sn”, aFloatValue, aCharString입니다); NUL 이 종료된 문자열 버퍼를 사용하여 OutputDebugString()을 호출하기만 하면 메시지가 디버거에 나타나게 됩니다. 일반적인 사용은 메시지를 빌드하고 처음에 전송, 우리는 주로 C 스타일 “표준”코드를했다 그리고 우리는 현대 C ++로 업데이트하려고.

첫 번째 일은 variadic 템플릿 인수를 사용하는 것이었습니다. 이렇게 하면 va_start/va_end C 런타임 함수를 사용하는 대신 컴파일 타임에 입력 매개 변수를 검색할 수 있습니다. 다음 단계는 source_location의 향후 구현을 C++20에 입력할 새 형식을 살펴보는 것이었습니다. Visual Studio에는 디버그 출력 창에서 특정 코드 줄로 빠르게 이동할 수 있는 트릭이 있습니다. 관리자로 모든 소프트웨어 개발을 수행하기로 결정하는 것조차도 완전한 수정사항이 아닙니다. 내가 아는 가장 일반적인 방법은 TRACE 매크로입니다 : 코드 프레스 F9에 중단점을 넣습니다. 선 옆에 빨간색 원이 나타납니다. 응용 프로그램을 실행하면 줄에서 중지되고 디버거가 입력됩니다.

이 시점에서 변수를 마우스 오른쪽 단추로 클릭하고 빠른 시계를 선택하거나 화면 오른쪽 하단의 시계 창에 입력하여 변수를 검사할 수 있습니다. 시계 창을 사용할 수 없는 경우 디버그 메뉴에서 사용 설정합니다. DirectX 인터페이스를 시청하려면 이 답변을 살펴보십시오. 또한 최신 C +++와 C ++20이 코드를 더 좋게 만드는 방법을 보여 드리겠습니다.

02 August, 2019
Posted in Uncategorized

Author: wolff