2014-10-03 78 views
-2

我從GUI應用程序啓動控制檯程序,從內存中使用this technique。另外,我通過未公開使用si.lpReserved2和si.cbReserved2,提供了一些GUI數據到控制檯程序,如described here。 所有在WinXP上編譯的VS2010都能在Windows XP 7和8下正常工作。如何在Windows8 VS2013中使用si.lpReserved2?

當VS2013出現時,它改變了處理上述參數的方式。如果我將它們設置爲零和0,它可以在Windows 8和其他平臺上運行。如果像以前一樣嘗試使用它們,控制檯程序將停止在AppCrash彈出消息中 - 僅在Windows8中,在Windows XP和7上它仍然有效。

什麼VS2013在si.lpReserved2中更改,並有任何方式繼續在Windows 8中使用它?這真是得心應手,非常合法的目的..

+4

這裏沒什麼聽起來很合理。使用命令行參數。並通過調用CreateProcess來創建進程。當你違反所有規則時你期望會發生什麼? – 2014-10-03 06:05:12

+1

我很想知道使用這種技術有哪些優勢? – 2014-10-03 08:01:18

+1

不尊重官方文檔是在同一臺計算機和其他計算機上製作自己的軟件和其他軟件的好方法 - 越野車和速度慢。 – 2014-10-03 21:49:02

回答

2

文檔說:

cbReserved2

保留供C運行時使用;必須爲零。

lpReserved2

保留,由C運行時間使用;必須爲NULL。

這不可能更清楚。

如果您希望將參數傳遞給新進程,請通過命令行執行。

相關問題