当前位置:  开发笔记 > 开发工具 > 正文

如何阻止命令提示符出现在Win32 C应用程序中?

如何解决《如何阻止命令提示符出现在Win32C应用程序中?》经验,为你挑选了1个好方法。

我真的不知道为什么会发生这种情况......我在emacs中创建了一个win32应用程序,每当我创建并运行它(而不是通过命令提示符)时,窗口下会弹出一个命令提示符窗口.如果我在Code :: Blocks中构建一个win32应用程序,并只运行其默认模板,那么它将在没有命令提示符窗口的情况下运行.我查看了两者的代码,无法弄清楚可能导致这种情况的原因......

我以为是因为我在那里包含了一些printf()语句,但我不希望它们留在那里(它们用于调试),所以我写了一个宏:

#define DEBUG

在main.c中,和

#ifdef DEBUG
#include
#define DBG printf
#else
#define DBG
#endif

在标题中(#define DEBUG当然包括在内).

当我unf'd DEBUG时,窗口仍然出现......我不知道我在做什么来实现它,有什么样的东西导致命令提示窗口显示在win32应用程序中?我尝试使用所有的****Ex()Windows功能而不仅仅是CreateWindow()等等,但这并没有改变任何东西.我检查并重新检查了类的定义和注册,但无济于事,并确保我没有忘记printf()语句(即使我这样做也会导致错误,因为stdio.h除非定义了DEBUG ,否则不会包括).

这是我包括的内容:

#include
#include
#include"main.h"
#include"windowproc.h"

有谁知道这会导致什么?我甚至评论了我所有的stdio,DBG,printf垃圾,它仍然出现了,我发誓我的代码和Code :: Blocks生成的代码之间没有区别,除了我使用HANDLE_MSG和一些额外的功能拆分代码.

更新

我正在使用MinGW 3.4.5.使用-mwindows开关工作,谢谢



1> John T..:

尝试使用-mwindows开关进行链接.

你的程序也应该像这样读取主方法:

int WINAPI WinMain(
....
)

而不是传统的int main().

相关主题:

为什么我的QT4.5应用程序在Windows下打开控制台窗口?

GCC/C如何隐藏控制台窗口?

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有