加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – MinGW,用控制台构建GUI应用程序

发布时间:2020-12-14 02:15:03 所属栏目:Windows 来源:网络整理
导读:我正在使用MinGW在 Windows上构建我的应用程序.编译和链接时,选项“-mwindows”放在命令行中以具有Win32 API函数. 更具体一点:当没有“-mwindows”这样调用MinGW的GCC时: c:g++ -c main.cpp c:g++ -o main.exe main.o 上面2个命令行之后的’main.exe’将
我正在使用MinGW在 Windows上构建我的应用程序.编译和链接时,选项“-mwindows”放在命令行中以具有Win32 API函数.

更具体一点:当没有“-mwindows”这样调用MinGW的GCC时:

c:&;g++ -c main.cpp 
c:&;g++ -o main.exe main.o

上面2个命令行之后的’main.exe’将使用控制台运行,并且Win32 API函数将无法使用.

用这样的“-mwindows”调用MinGW的GCC时:

c:&;g++ -c main.cpp
c:&;g++ -o main.exe main.o -mwindows

现在链接’-mwindows’,’main.exe’可以使用Win32 API,但是,它不会在应用程序运行时启动控制台.

这个“-mwindows”选项禁用控制台,这使我无法打印出调试信息.保持控制台和选项’-mwindows’的任何方法?

解决方法

我没有证据证明这个答案,只有一些成功的实验.如果我有一个你好的应用程序,像这样:

#include <stdio.h>
#include <windows.h>

int main(void)
{
    puts("hi");
    MessageBox(NULL,"test",NULL);
    GetStockObject(0);
    return 0;
}

我无法用-mconsole编译它,因为链接器抱怨GetStockObject.但是当我在命令行中使用-lgdi32开关添加必要的库时,应用程序将编译并执行干净.也许这是保持控制台和gdi的方法.这是命令行:

gcc -mconsole test_gdi.c -lgdi32

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读