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

게시 한 코드로 인해 발생한 문제에 대해서는 설명하지 않았습니다. * 나는 콘솔을 열 수 없다. *는 유용하지 않고, 지금까지 아무 것도 작동하지 않는다. 어떤 방법으로 작동하지 않습니까 *? ** 특별히 ** 우리가 여기서 당신을 도울 수 있습니까? (그리고 거의 깨지지 않는 규칙으로 ** 사용하기 전에 ** 함수를 선언해야합니다. [PInvoke] (http://pinvoke.com)에서 보았습니까?) –

+0

또한 함수가 실패하면 (0을 반환하는) [AllocConsole docs] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms681944(v=vs.85) .aspx)를 읽으려고했습니다.), 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 Form 내의 Console이 무슨 뜻인지 정말로 이해하지 못합니다.

콘솔 창을 다른 컨트롤 Button, TextBox 등과 같이 Windows Form에 첨부 하시겠습니까? 아니면 응용 프로그램을 실행할 때 표시하고 싶습니까? RichTextBox 컨트롤을 사용하여

  1. :

    나는 몇 가지 아이디어가 있습니다.

  2. 프로젝트 유형을 콘솔 응용 프로그램으로 설정하십시오. 이 경우 응용 프로그램을 실행할 때 Windows Form과 Console이 모두 표시됩니다.
  3. 모든 것을 디버그 창에 쓰십시오.
  4. 모든 것을 로그 파일에 기록하십시오.

호프 유용합니다.

관련 문제