我得到了編輯並繼續爲我的C++項目設置功能,以便我可以執行breakall,更改代碼,然後繼續查看我的代碼的結果。 但是,如果我不必手動點擊按鈕會更好。我的第一個解決方案是使用1個按鍵執行BreakAll,然後執行Continue功能。不過,我沒有找到一個答案,只使用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: 好吧得到了它的一些幫助和示例腳本。它現在在視覺工作室失去重點時保存並重新編譯。當它獲得焦點時,它將全部崩潰。 下面是修改代碼:
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;
}
僅供參考,C++編輯並繼續支持你的應用程序運行時。因此,對於您的C++項目,您可以修改代碼,按Alt + F10(「應用代碼更改」),這將會(在封面下)全部破解,應用您的更改並繼續。 – Ramkumar