2016-07-14 2 views
-3

Windowsフォームアプリケーション内でコンソールを開こうとしているので、現在作業中のゲームエンジンで後でデバッグすることができます。で、私のコメントを維持する上でWindows上のコンソールフォームアプリケーション

private void GameWind_Load(object sender, EventArgs e) 
{ 
    AllocConsole(); 
} 
//allows the game console to be seen during execution 
[DllImport("kernel32.dll", SetLastError = true)] 
[return: MarshalAsAttribute(UnmanagedType.Bool)] 
static extern bool AllocConsole(); 

謝罪を、しかし、関係なく、私は何をすべきか、私は単にこれが仕事を得ることはできません。残念ながら、何らかの理由で、私はこのコードを使用して開くには、コンソールを取得することはできません。私は少なくとも5回タイプミスを見つけようとしましたが、コンソールを起動するためのいくつかの方法を試しましたが、これまで何も動作していません。私は何かが欠けているように感じるが、私は単にそれに私の指を置くことはできません。誰かが自分のコードで何が間違っているのかを知ることができたら、教えてください。

+1

投稿したコードで問題が説明されていません。 *私はコンソールを開くことができません*有用ではない、とishterは*これまで何も動作*です。どのようにして*働かないのですか? **具体的に何が**ここでお手伝いできますか? (そして、ほとんど解読不可能なルールとして、**あなたがそれらを使用する前に関数**を宣言しなくてはなりません。[PInvoke](http://pinvoke.com)を見てみましたか?) –

+0

また、 [AllocConsole docs](https://msdn.microsoft.com/en-us/library/windows/desktop/ms681944(v = vs.85).aspx)を読んでみました。これは、関数が失敗した場合(0 )、GetLastErrorを使用して理由を調べることはできますか?そして、AllocConsoleは 'bool'を返すのではなく、そのコンソールとのさらなる対話に使用するコンソールへのハンドルですか?まず[コンソール](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682055(v = vs.85).aspx)を見ることから始めてください。 –

+0

あなたのコードに間違いはありません。あなたは 'AllocConsole'からの戻り値をチェックし、' Marshal.GetLastWin32Error'を呼び出して問題が何かを確認していますか?私は、C#のコンソールAPIの使用に関する一連の記事を書いています。残念ながら、記事はもはやオンラインでは入手できませんが、私のウェブサイトから完全なソースコードをダウンロードすることができます。 http://www.mischel.com/pubs/consoledotnet.zip。あなたが探しているのは、JConsole.csとWinCon.csファイルです。ソリューションとプロジェクトファイルは非常に古いものですが、コードを新しいソリューションに含めるとコードはコンパイルされることに注意してください。 –

答えて

-2

Windowsフォーム内のコンソールの意味がわかりません。

コンソールウィンドウを他のコントロールのボタン、テキストボックスなどのようにWindowsフォームに接続したいのですか、アプリケーションを実行するときに表示したいだけですか? RichTextBoxコントロールを使用して

  1. は、私はいくつかのアイデアを持っています。

  2. プロジェクトタイプをコンソールアプリケーションに設定します。この場合、アプリケーションの実行時にWindowsフォームとコンソールの両方が表示されます。
  3. デバッグウィンドウにすべてを書き込んでください。
  4. 代わりにログファイルにすべてを書き込みます。

希望します。