2017-06-19 90 views
0

我使用匿名管道讓2個應用程序交換信息。 App1啓動App2併發送/ recv數據。代碼是C++。通過Visual Studio使用匿名管道

它在發佈中運行良好。

另外,我有一個讓應用1推出應用2通過Visual Studio調試器,可選擇:devenv.exe的/調試App2.exe

使用Visual 2008年,它的工作就像一個魅力,調試器打開時,我可以設置我的斷點,F5和App2啓動,我可以調試它,管道正確通信。

隨着Visual 2013和2015,它不再工作。當調試器啓動App2時,App2無法打開管道句柄,但出現無效句柄錯誤。

你知道怎麼回事,如果在創建管道時有什麼事要做,或者在Visual Studio中有一個選項?

感謝

傑拉爾德

回答

0

您應該配置項目啓動:打開上下文菜單中Solution Explorer解決方案 - >Set Up Startup Projects,選擇Multiple Startup Projects和配置在哪個項目應該啓動的順序。確保Action設置爲Start,以便VS啓動它們並附加debuger。

+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