私はC++プロジェクトの編集と機能のセットアップを手に入れましたので、ブレークを実行してコードを変更してから、コードの結果を表示し続けます。 しかし、ボタンを手動でクリックする必要がない方が良いでしょう。私の最初の解決策は、BreakAllを実行してからContinue関数を実行する1回のキー押しを使用することでした。しかし、私はビジュアルスタジオ2017だけを使用して答えを見つけることができませんでした。Visual Studioで壊れてフォーカスを失う方法2017
私は良いアイデアに来た。コンパイルされたexeがフォーカスを失った場合、フォーカスを戻してBreakAllを実行し、次に続行するとどうなりますか? 同じことをするが、作成するのが簡単な別の方法。私はコンパイルされたexeファイルに焦点を当てているので、Visual Studioのフォーカスが失われます。 BreakAllをすばやく実行してから続行します。 それは私にコードを書いて、それをリアルタイムで実行させるでしょう。
私の質問は既に存在しますか?私は答えを見つけることができませんでした。そしてもしそうでなければ、誰かがこれが拡張を作ることが可能かどうか考えを持っていますか?それとも、誰かがそれを作ろうとしているのですか?読んでくれてありがとう。
EDIT: ここにいくつかの擬似コードがあります。
if compiled_build_running == true && lost_focus == true {
Debug.BreakAll
Debug.Continue
}
EDIT2: さてさて、それはいくつかの助けと例のスクリプトで動作するようになりました。これで、Visual Studioがフォーカスを失ったときに保存され、再コンパイルされます。そして、それがフォーカスを得たときにブレークオール。あなたは私のVisual Commander拡張機能を使用してこのタスクを自動化することができるはず
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