C# Win32是否允许同时使用控制台和窗口的应用程序?

C# Win32是否允许同时使用控制台和窗口的应用程序?,c#,c++,winapi,C#,C++,Winapi,C#宠坏了我,因为我可以编写一个针对“控制台”的应用程序,同时仍然使用窗口。这对于调试来说非常有用,但遗憾的是,我不知所措:Win32中面向/SUB-SYSTEM:WINDOWS的应用程序是否也可以使用控制台?是的。如果创建控制台应用程序,仍然可以创建窗口。就像一个非控制台应用程序一样,您仍然必须拥有和窗口消息。如果创建基于窗口的应用程序,则可以通过调用来创建控制台。是。如果创建控制台应用程序,仍然可以创建窗口。就像一个非控制台应用程序一样,您仍然必须拥有和窗口消息。如果创建基于窗口的应用程序,

C#宠坏了我,因为我可以编写一个针对“控制台”的应用程序,同时仍然使用窗口。这对于调试来说非常有用,但遗憾的是,我不知所措:Win32中面向
/SUB-SYSTEM:WINDOWS
的应用程序是否也可以使用控制台?

是的。如果创建控制台应用程序,仍然可以创建窗口。就像一个非控制台应用程序一样,您仍然必须拥有和窗口消息。如果创建基于窗口的应用程序,则可以通过调用来创建控制台。

是。如果创建控制台应用程序,仍然可以创建窗口。就像一个非控制台应用程序一样,您仍然必须拥有和窗口消息。如果创建基于窗口的应用程序,则可以通过调用来创建控制台。

创建同时使用WIN32函数进行GUI处理的控制台程序可能更容易。当然,请使用AllocConsole()。或者将子系统更改为console,就像您在C#程序中所做的那样。这确实需要将入口点更改为main()。或者使用Visual Studio输出窗口进行调试输出。调用OutputDebugString()将文本发送到该窗口。显然,答案是肯定的:(a)正如您所说,C#(.NET,实际上)证明了这是可能的;(b)控制台也在一个窗口中运行,因此必须能够同时拥有这两个窗口,否则您将看不到控制台。@stakx:console窗口非常特殊。它甚至不属于您的进程,它的所有GUI行为都由
conhost.exe
处理
它的所有GUI行为都由conhost.exe
处理。(检查任务经理)哦,糟了,这是真的。有趣。制作一个同时使用WIN32函数进行GUI处理的控制台程序可能更容易。当然,可以使用AllocConsole()。或者将子系统更改为console,就像您在C#程序中所做的那样。这确实需要将入口点更改为main()。或者使用Visual Studio输出窗口进行调试输出。调用OutputDebugString()将文本发送到该窗口。显然,答案是肯定的:(a)正如您所说,C#(.NET,实际上)证明了这是可能的;(b)控制台也在一个窗口中运行,因此必须能够同时拥有这两个窗口,否则您将看不到控制台。@stakx:console窗口非常特殊。它甚至不属于您的进程,它的所有GUI行为都由
conhost.exe
处理
它的所有GUI行为都由conhost.exe
处理。(检查任务经理)哦,糟了,这是真的。有意思。哦,瑞德,我不知道你能做到。那么如何捕获HINSTANCE?使用
GetModuleHandle(NULL)
。返回值与应用程序的HINSTANCE相同。噢,rad,我不知道你可以这么做。那么如何捕获HINSTANCE?使用
GetModuleHandle(NULL)
。返回值与应用程序的HINSTANCE相同。