2016-10-15 29 views
1

私はVisual Studio 2013でC++コンソールアプリケーションを使用しており、Windowsで動作しています。AttachConsoleエラー5:アクセスが拒否されました

最初にFreeConsoleを使用してコンソールを切り離しました。 AllocConsoleFreeConsole then AttachConsole not workingとし、trueを返します。最後に、私はAttachConsoleを使用して、それをバック添付しようとしましたが、何も起こらなかった -

#include <psapi.h> 

DWORD winpid = GetCurrentProcessId(); // get pid 
std::cout << winpid; // it works  
FreeConsole(); // console lost 
bool succeed = AllocConsole(); //succeeded. 
succeed = AttachConsole(winpid); // return false: failed. 
if (!succeed) 
    LastError = GetLastError(); // Error Code 5 

System Error Code 5 means

ERROR_ACCESS_DENIED 
5 (0x5) 
Access is denied. 

私はきちんとコンソールを添付しなければならない方法は?

答えて

2

AttachConsoleの前にAllocConsole呼び出しを削除します。

documentation: プロセスは、最大で1つのコンソールに接続できます。呼び出し元のプロセスがすでにコンソールに接続されている場合、返されるエラーコードはERROR_ACCESS_DENIED(5)です。

+0

私が以前にしたことはまさに私がやったことです:http://stackoverflow.com/questions/40059618/freeconsole-then-attachconsole-not-working、それは動作しません。 – athos

+0

あなたはFreeConsoleの結果を確認しましたか? –

+0

FreeConsoleはtrueを返します。これは成功したことを意味します。 – athos

関連する問題