MFC调用win32窗口显示调试信息.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC调用win32窗口显示调试信息

MFC调用win32窗口显示调试信息,使用AllocConsole?函数 (2010-11-16 15:33:25) 转载 标签: win32 mfc 杂谈 分类: ??? AllocConsole Function 为主调进程分配一个新的控制台。 ??? 语法 C++ : ??? BOOL WINAPI AllocConsole(void); ??? 参数:?? 无 ??? 返回值:如果函数成功,返回值是非零值;如果函数失败,返回值是零值。 ??? 备注:?? 一个进程仅能关联一个控制台,所以该函数在主调进程已经具有控制台时将会失败。 ? ??? 一个进程可以使用 FreeConsole 函数来释放与之关联的控制台,之后它就可以调用该函数来创建一个新的控制台或使用 AttachConsole 函数来关联另一个控制台。 ? ??? 如果主调进程创建了一个子进程,则子进程也将继承这个新创建的控制台。 ?? ?该函数为新的控制台初始化标准输入、输出、错误句柄等。 ? ??? 标准输入句柄是一个控制台输入缓冲的句柄,标准输出和标准错误句柄则是控制台屏幕缓冲的句柄。为了获得这些句柄,可以使用 GetStdHandle 函数。 该函数主要用于GUI应用程序来创建一个控制台窗口。 ? ??? GUI应用程序初始化时时没有控制台的,而控制台应用程序则以控制台来初始化的。 ? ??? 要求 : Minimum supported client Windows 2000 Professional ??????????? Minimum supported server Windows 2000 Server ??????????? Header:? Wincon.h (include Windows.h) ????????????Library: Kernel32.lib DLL Kernel32.dll ---------------------------------------------------------------------------------------- ????虽然WIN32时代是图形界面时代,但偶尔程序中还需要用到命令行模式,比如批处理,这时再搞个图形界面出来显得似乎就不那么专业了。但客户还需要在正常状态下(对于命令行模式,我认为用户是非正常状态,比如脑子进水。)使用图形界面,这决定我们不能开一个控制台工程,而需要使用MFC exe程序。 ? ?? OK,理所当然的,通过条件控制,命令行下我关掉对话框界面的调用代码,再使用 cout Hello world! endl; 来向这个友好的世界打个招呼,并坚持认为这句问候应该显示在CMD那个漆黑的窗口里。 ?? 很沮丧地说,事实给我与痛击。cmd窗口里仍然漆黑一片,系统完全不理会我的友好。 ? ?? 邓爷爷说,改革开放好!也许,我也需要个改革。 ? ?? 在同事mr. zhang的指导下,我找到一组API:Console Functions!正是这组API,最终让我的友好得以正当地表达。 ? ? 一。创建一个Console,AllocConsole ? 直接使用 AllocConsole(); 马上,若是进程内第一次调用这个函数,一个空的cmd窗口会蹦出来。需要注意,一个进程只能创建一个console,多次调用会返回FALSE;而且,这个窗口是个独立的控制台窗口。 ? MSDN的解释:A process can be associated with only one console, so the AllocConsole function fails if the calling process already has a console.? 还有段:If the calling process creates a child process, the child inherits the new console. ? ?? 二。显示Hello World,WriteConsole ?? 有了console,我们还需要获取它的句柄HANDLE,然后才能在上面显示。方法是 GetStdHandle,它会获取前面我们AllocConsole得到的cmd窗口的句柄;若未调用AllocConsole,将获取标准的输入输出窗口句柄。 ?? MSDN的解释:The GetStdHandle function returns a handle for the standard input, standard output, or standard error device. HANDLE hdlWrite = GetStdHandle(STD_OUTPUT_HAN

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档