gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:53:47 27 4
gpt4 key购买 nike

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

我以为是因为我在其中包含了一些 printf() 语句,但我不想让它们留在那儿(它们是为了调试),所以我写了一个宏:

#define DEBUG

在 main.c 中,和

#ifdef DEBUG
#include<stdio.h>
#define DBG printf
#else
#define DBG
#endif

在 header 中(当然包含在 #define DEBUG 之后)。

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

这是我包含的内容:

#include<windows.h>
#include<windowsx.h>
#include"main.h"
#include"windowproc.h"

有人知道是什么原因造成的吗?我什至注释掉了我所有的 stdio、DBG、printf 垃圾,但它仍然出现,我发誓我的代码和 Code::Blocks 生成的代码没有区别,除了我使用 HANDLE_MSG 和一些额外的函数来拆分代码。

更新

我正在使用 MinGW 3.4.5。使用 -mwindows 开关有效,谢谢

最佳答案

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

你的程序也应该有这样的 main 方法:

int WINAPI WinMain(
....
)

与传统的 int main() 不同。

相关主题:

关于c - 如何阻止命令提示符出现在 Win32 C 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/963643/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com