64 비트 앱을 빌드하기 위해 VS2008로 업그레이드 할 일부 오래된 VC6.0 코드를 상속 받았습니다. 길고 오래 전에 구현 된 하나의 필수 기능은 std :: cout을 오버라이드하므로 콘솔 창과 파일에 동시에 출력됩니다. 구현은 당시 ostream의 VC98 라이브러리 구현에 의존했으며 물론 현재는 VS2008을 통해 완전히 복구 할 수 없습니다. 프로그램 종료 시간까지 모든 출력을 누적 한 다음 파일에 덤프하는 것이 합리적입니다. freopen(), setvbuf() 및 ios :: sync_with_stdio()를 사용하여 집으로 돌아가는 길을 가졌지 만, 당황 스럽지만 내부 라이브러리는 해당 버퍼를 링 버퍼로 취급하지 않습니다. 대신 출력 장치로 플러시 할 때 처음에 다시 시작되므로 모든 누적 된 출력이 누적 된 모든 출력을 지 웁니다. 더 표준 로깅 기능으로 변환하는 것은 바람직하지 않습니다. 거의 60 개의 파일에 "std :: cout < <"이 흩어져 있기 때문에 바람직하지 않습니다. ostream의 연산자를 재정의하는 것으로 생각했습니다. < < 함수가 있지만 전역 연산자가 있기 때문에 덮어 쓰게 될지 잘 모르겠습니다. < < 함수를 재정의 할 수 없습니다. (또는 그럴 수 있습니까?)내부 "티"설정
이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
예, 유망 해 보입니다. 그것이 나를 위해 일하면 나는 곧 알아야한다. 감사. – RadlyEel
그게 작동합니다. 나는 당신에게 "UP"응답을주기에 충분한 순위가 없지만, 고맙습니다. – RadlyEel