현재 작업중인 게임 엔진으로 나중에 디버깅 할 수 있도록 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 번 다시 입력했는데 콘솔을 가져 오는 몇 가지 다른 방법을 시도해 보았습니다. 지금까지 아무 것도 작동하지 않았습니다. 나는 뭔가를 놓치고있는 것처럼 느낀다. 그러나 나는 단지 그것에 나의 손가락을 댈 수 없다. 누구든지 내 코드에 문제가있는 것을 발견하면 알려 주시기 바랍니다.
게시 한 코드로 인해 발생한 문제에 대해서는 설명하지 않았습니다. * 나는 콘솔을 열 수 없다. *는 유용하지 않고, 지금까지 아무 것도 작동하지 않는다. 어떤 방법으로 작동하지 않습니까 *? ** 특별히 ** 우리가 여기서 당신을 도울 수 있습니까? (그리고 거의 깨지지 않는 규칙으로 ** 사용하기 전에 ** 함수를 선언해야합니다. [PInvoke] (http://pinvoke.com)에서 보았습니까?) –
또한 함수가 실패하면 (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)을 보면서 시작하는 것이 좋습니다. –
코드에 문제가없는 것 같습니다. 'AllocConsole'의 반환 값을 확인하고'Marshal.GetLastWin32Error'를 호출하여 문제가 무엇인지 확인하고 있습니까? C#에서 콘솔 API를 사용하는 방법에 대한 일련의 기사를 작성했습니다. 불행히도 기사는 더 이상 온라인에서 사용할 수 없지만 내 웹 사이트에서 전체 소스 코드를 다운로드 할 수 있습니다. http://www.mischel.com/pubs/consoledotnet.zip. 찾고있는 것은 JConsole.cs 및 WinCon.cs 파일입니다. 솔루션과 프로젝트 파일은 매우 오래되었지만 코드를 새로운 솔루션에 포함 시키면 컴파일됩니다. –