2017-06-19 9 views
0

匿名パイプを使用して2つのアプリケーションが情報を交換しています。 App1はApp2を起動し、/ recvデータを送信します。コードはC++です。Visual Studioでの匿名パイプの使用

リリースでうまくいきます。

また、私はApp1のはでは、Visual Studioデバッガを通じてApp2のを起動してみましょうオプションがあります:DEVENV.EXE /デバッグApp2.exe

ビジュアル2008それはデバッガが開いたとき、私は設定することができ、魔法のように働いていたが私のブレークポイント、ヒットF5とApp2が始まり、私はそれをデバッグすることができ、パイプは正しく通信しています。

Visual 2013および2015では、これ以上動作しません。デバッガがApp2を起動すると、App2はパイプハンドルを開くことができません。エラーが発生しました。無効なハンドルです。

私はパイプの作成時に何かや、Visual Studioのオプションがあれば何が起こっているのか考えていますか?

おかげ

ジェラルド

答えて

0

あなたは、プロジェクトの立ち上げを設定する必要がありますSolution Explorerでソリューションのためのオープンコンテキストメニューを - 、>Set Up Startup ProjectsMultiple Startup Projectsを選択して、あなたのプロジェクトが発足されるべき順序を設定します。 ActionStartに設定されていることを確認します。これにより、VSがそれらを起動してデバッガを接続します。

+0

これは私の問題を解決する方法は表示されません。私はデバッガでApp2を起動するのに問題はなく、パイプを開くことができないだけの問題です。 – Gerald

+0

しかし、この方法を試してみましたか? devenv.exeコマンドを使用してアプリケーションを手動で起動することは非常に珍しいようです。いくつかの分離レベルを追加して、別のVSインスタンスを使用してプログラムを起動すると、アプリケーションの動作に何らかの影響を与える可能性があります。 – VTT

+0

これは意味をなさない。質問では、App1はApp2を起動します。これにより、App2はApp1の子プロセスになります。 Visual StudioからApp1とApp2を並行して起動すると、それらは兄弟になります。それは意図したものではありません。 – MSalters

0

Visual Studio 2017で開こうとすると、新しいフレームワークで実行するようにアプリケーションを設定できます。私はVisual Studioの以前のバージョンでそれを行う方法がわかりません

+0

これはC++ではなく、C#です。関係する「フレームワーク」はありません。 – MSalters

+0

これは純粋なC++で、パイプを作成するためのWIN32 APIが少しあります。そして目標は本当に最初の段階でApp2をデバッグできることです。 – Gerald

関連する問題