golang 开发windows应用
闲着无聊又玩go语言找虐。。。——用go开发windows应用程序 想要用go开发windows应用必须先要安装必要的组件: walk集成了很多windows的控件 gogetgithub.com/lxn/walk win是go调用windowsApi的一种实现 gogetgithub.com/lxn/win rsrc是连接walk/win和windows动态连接的工具 gogetgithub.com/akavel/rsrc 有了这些我们就能实际的编码了 先测试一下winApi的有效性: 看了一下这位写的,比较到位,把之前编译运行报错的问题也找到了,恩感谢,但是源码里有段字符串拼错了 更正一下: //GoWinprojectGoWin.go packagemain import( "github.com/lxn/win" "strconv" "syscall" ) func_TEXT(_strstring)*uint16{ returnsyscall.StringToUTF16Ptr(_str) } func_toString(_nint32)string{ returnstrconv.Itoa(int(_n)) } funcmain(){ varhwndwin.HWND cxScreen:=win.GetSystemMetrics(win.SM_CXSCREEN) cyScreen:=win.GetSystemMetrics(win.SM_CYSCREEN) win.MessageBox(hwnd,_TEXT("屏幕长-:"+_toString(cxScreen)+"宽:"+_toString(cyScreen)),_TEXT("消息<atarget="_blank"href="http://blog.csdn.net/songbohr">http://blog.csdn.net/songbohr</a>"),win.MB_OK) } 注意:win组件里的phd.go中, //这行要注释,如果你不是WIN7的狂热爱好者的话 //pdh_AddEnglishCounterW=libpdhDll.MustFindProc("PdhAddEnglishCounterW") http://www.52php.cn/article/p-grkuduvv-bdq.html 编译运行成功,注意这里必须是package main不然不会生产exe packagemain 接下来试一下walk能不能行: packagemain import( "github.com/lxn/walk" ."github.com/lxn/walk/declarative" "strings" ) funcmain(){ varinTE,outTE*walk.TextEdit MainWindow{ Title:"SCREAMO",MinSize:Size{600,400},Layout:VBox{},Children:[]Widget{ HSplitter{ Children:[]Widget{ TextEdit{AssignTo:&inTE},TextEdit{AssignTo:&outTE,ReadOnly:true},},PushButton{ Text:"SCREAM",OnClicked:func(){ outTE.SetText(strings.ToUpper(inTE.Text())) },}.Run() } 编译运行成功,但是运行没结果, 搞了半天,仔细看了一下walk的文档 原来是要这样搞: 首先新建一个文件比如test.manifest(感觉做着绝对是个android粉)填入如下代码 <?xmlversion="1.0"encoding="UTF-8"standalone="yes"?> <assemblyxmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0"> <assemblyIdentityversion="1.0.0.0"processorArchitecture="*"name="SomeFunkyNameHere"type="win32"/> <dependency> <dependentAssembly> <assemblyIdentitytype="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"processorArchitecture="*"publicKeyToken="6595b64144ccf1df"language="*"/> </dependentAssembly> </dependency> </assembly> 运行如下命令 rsrc-manifest你应用的名字.manifest-orsrc.syso gobuild gobuild-ldflags="-Hwindowsgui" 运行生成的exe,就能看到熟悉的windows界面了 感觉go开发windows应用还是不怎么方便,而且不太经济,调试和编译耗费的精力很大, 期待以后开发工具能再进一步优化一下 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |