分享

GoLang编译的程序,如何让程序运行时的DOS窗口不显示

 quasiceo 2014-01-16

GoLang编译的程序,如何让程序运行时的DOS窗口不显示

AiboW 发表于 2012-8-31 12:59 1年前, 5回/1187阅, 最后回答: 4个月前

马年献礼,git@osc 抽奖活动火热进行中~

GoLang编译的程序,如何让程序运行时的DOS窗口不显示

Golang编译后,运行,每次都会弹出一个DOS窗口。现在想禁用弹出这个DOS窗口,该怎么设置呢?

标签: <无>
我想问同样的问题 0个人想要问同样的问题 补充话题说明?
分享到
7
0 | 0

按评价排序 | 显示最新答案 | 回页面顶部 共有5个答案 我要回答?

  • AiboW
    AiboW 回答于 2012-08-31 18:14

    经过资料研究。终于解决问题

    编译时加上go build -ldflags -Hwindowsgui project.go

    编译完成就可以了

    --- 共有 2 条评论 ---
    • 独孤小败 为啥我运行它说 unknown flag -Hwindowsgui 啊 (5个月前 by 独孤小败)
    • 唐阳 嘿嘿 (1年前 by 唐阳)
  • 吕智钊
    吕智钊 回答于 2012-08-31 13:10

    看起来你是在win下运行,也就是所谓的控制台模式.

    如果你希望走win服务模式或者有窗体循环的话,调用win的API就好

    比如

    1import (
    2"syscall"
    3)
    4 
    5kernel32, _ = syscall.LoadLibrary("kernel32.dll")
    6getModuleHandle, _ = syscall.GetProcAddress(kernel32, "GetModuleHandleW")

    当然,这种方法需要你对win32 api 相对比较熟悉才好喔
  • AiboW
    AiboW 回答于 2012-08-31 14:04

    引用来自“吕智钊”的答案

    看起来你是在win下运行,也就是所谓的控制台模式.

    如果你希望走win服务模式或者有窗体循环的话,调用win的API就好

    比如

    1import (
    2"syscall"
    3)
    4 
    5kernel32, _ = syscall.LoadLibrary("kernel32.dll")
    6getModuleHandle, _ = syscall.GetProcAddress(kernel32, "GetModuleHandleW")

    当然,这种方法需要你对win32 api 相对比较熟悉才好喔

    感谢回答。没有明白你的意思。你的意思是更改启动入口?那么启动入口是怎么编写的呢。

    比如以下程序

    http://www.oschina.net/code/snippet_157181_13332

  • 唐阳
    唐阳 回答于 2012-08-31 15:12 来自 Android
    好像是编译的时候加个参数就行了
  • wo123456
    wo123456 回答于 2013-09-06 10:33
    go build -ldflags "-H windowsgui" project.go

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多