我真的不知道为什么会发生这种情况......我在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开关工作,谢谢
尝试使用-mwindows开关进行链接.
你的程序也应该像这样读取主方法:
int WINAPI WinMain( .... )
而不是传统的int main().
相关主题:
为什么我的QT4.5应用程序在Windows下打开控制台窗口?
GCC/C如何隐藏控制台窗口?