2017-10-08 1 views
-2

내 C++ 프로젝트에 대한 편집 및 계속 기능 설정을 통해 중단 점을 실행하고 코드를 변경 한 다음 코드 결과를 계속 볼 수 있습니다. 그러나 단추를 수동으로 클릭 할 필요가 없다면 더 좋을 것입니다. 내 첫 번째 솔루션은 BreakAll을 실행 한 다음 Continue 함수를 실행하는 1 번의 키 누르기를 사용했습니다. 그러나 Visual Studio 2017 만 사용하여 답변을 찾지 못했습니다.중단하고 Visual Studio에서 초점이 끊긴 상태로 유지하는 방법 2017

그런 다음 더 좋은 아이디어를 얻었습니다. 컴파일 된 exe가 포커스를 잃고 포커스를 얻으면 BreakAll을 실행 한 다음 계속하십시오. 또는 같은 일을하지만 쉽게 할 수있는 다른 방법. Visual Studio에서 포커스를 잃을 때입니다 (컴파일 된 exe에 집중했기 때문입니다). BreakAll을 빠르게 실행 한 다음 계속합니다. 그러면 코드를 작성하고 실시간으로 실행할 수 있습니다.

제 질문은 이미 존재합니까? 나는 대답을 찾을 수 없었다. 그리고 만약 가능하다면 누군가가 아이디어를 가지고 이것이 연장을 만드는 것이 가능한가? 아니면 그것을 기꺼이 누군가? 읽어 주셔서 감사합니다.

편집 : 다음은 일부 의사 코드입니다.

if compiled_build_running == true && lost_focus == true { 
    Debug.BreakAll 
    Debug.Continue 
} 

EDIT2 : 좋아는 도움이 예 스크립트 작업을 얻었다. 이제 Visual Studio에서 포커스를 잃을 때 저장하고 다시 컴파일합니다. 그리고 BreaksAll은 포커스를 얻었을 때.

using EnvDTE; 
using EnvDTE80; 

public class E : VisualCommanderExt.IExtension 
{ 
    public void SetSite(EnvDTE80.DTE2 DTE_, Microsoft.VisualStudio.Shell.Package package) { 
    DTE = DTE_; 
    System.Windows.Application.Current.Deactivated += OnDeactivated; 
    System.Windows.Application.Current.Activated += OnActivated; 
} 

public void Close() { 
    System.Windows.Application.Current.Deactivated -= OnDeactivated; 
    System.Windows.Application.Current.Activated -= OnActivated; 
} 

private void OnDeactivated(object sender, System.EventArgs e) { 
    try { 
     DTE.ExecuteCommand("File.SaveAll"); 
    } catch (System.Exception ex) { 
    } 
    if (DTE.Mode == vsIDEMode.vsIDEModeDebug) { 
     DTE.ExecuteCommand("Debug.Start"); 
    } 
} 

private void OnActivated(object sender, System.EventArgs e) { 

    if (DTE.Mode == vsIDEMode.vsIDEModeDebug) { 
     DTE.ExecuteCommand("Debug.BreakAll"); 
    } 

} 

private EnvDTE80.DTE2 DTE; 
} 
+0

참고로, C++ 편집하며 계속하기 :

if (DTE.Mode == vsIDEMode.vsIDEModeDebug) 

내장 비주얼 스튜디오 명령 사용을 실행하려면 :

는 비주얼 스튜디오는 현재 사용중인 디버깅되어 있는지 확인하려면 . 따라서 C++ 프로젝트의 경우 코드를 수정하고 Alt + F10 ("코드 변경 적용")을 누르면 코드가 모두 손상되어 변경 사항이 적용되고 계속됩니다. – Ramkumar

답변

0

당신은 내 Visual Commander 확장을 사용하여이 작업을 자동화 할 수 있어야한다 : 다음은 수정 된 코드입니다.

Visual Studio 포커스 손실 이벤트를 잡는 방법은 https://stackoverflow.com/a/33592923/84507을 참조하십시오. 앱이 실행 중일 때 지원됩니다

DTE.ExecuteCommand("Debug.BreakAll"); 
+0

고마워, 내가 코드를 조금 수정 했어. – StackingLua

관련 문제