2012-06-17 12 views
5

リカバリモードで標準のWindows 7インストールディスクを実行すると、コマンドラインを開いてカスタムビルドされたアプリケーションを実行するとエラー 'サブシステムがサポートされていません'が表示されます。私は/ SUBSYSTEM:CONSOLE、WINDOWS、NATIVEとリンクしようとしましたが、これらの作業はありません。リカバリディスクでサポートされているWindowsサブシステム

私はパーティションテーブルで少し難しかったです(そして、ウィンドウに含まれているパーティションマネージャからバグ、または少なくとも「ばかげた」動作を見つけた可能性があります)ので、それを修正するユーティリティを書きました。私のプログラムでは、Windowsの場合はCreateFileをインポートするためにWindows.hを使用していますが、必要があれば標準のC++(あるいは標準のC)しか使用できません。

アプリケーションを実行するには何が必要ですか?

+1

あなたはどのようなコンパイラを使用していますか?これはシンプルな "Hello World"プログラムで再現可能ですか、またはCreateFileの使用を開始するときに問題が発生しますか?あなたのプログラムw.r.tの 'objdump -p'の出力は何ですか? "サブシステム"? http://old.nabble.com/Finding-an-executable's-Windows-subsystem-td22897545.html – HostileFork

+0

Visual Studio 2010のC++(静的なランタイムを使用)を使用して、1時間でチャンスが得られたら空のプロジェクトを作成した後、単なるprintfを使用します。 – James

答えて

5

Windows回復環境は、Windowsプレインストール環境のスーパーセットです。

Windows PEは、WoW(WindowsのWindows)を含む多くのサブシステムが欠けている、切り捨てられたWindowsのバージョンです。

これは、32ビットの実行ファイル(または32ビットコンポーネントを持つもの)が64ビットのWindows PEディスクで実行されないことを意味します。 (WinPE 32は64ビットシステムをインストール/修復できないことに注意してください)。

私の問題に対する解決策は、64ビットコードにコンパイルすることでした。記述的なエラーメッセージがうまくいきました。多くの検索後に発見

http://technet.microsoft.com/en-us/library/cc766093(v=ws.10).aspx

+0

私はこれを2日間で回答にします(それが私にできるとき) – James

0

どのような方法でC++ CRTを使用していますか?私はそれがサポートされているとは思わない。私はCreateFileが適切であることを疑うだろう。代わりにNtCreateFileを調べてください。

+0

さて、ランタイムにする必要があります...リカバリコンソールで実行するさまざまなツールがあります。要件を見つけることができるページを知っている人はいますか?私はGoogleを介して何かを上げることができませんでしたが、間違ったことを入力している可能性があります。 – James

+1

あなたはネイティブランタイム(http://technet.microsoft.com/en-us/sysinternals/bb897447.aspx)を考えています。幸いにも、回復モードとWindows PEはWin32で実行されますが、一部のコンポーネントが削除されただけです。 – BCran

関連する問題