Windows程序使用管理员权限运行

1、获取rsrc go install github.com/akavel/rsrc@latest 在项目根目录中创建*.manifest文件(文件名没有过多局限,不过按照要求来也没错) <?xml version="1.0" encoding="UTF-8" standalone="yes"?>


go访问私有函数或变量

go访问私有函数或变量 [TOC] 参考文档 compile command - cmd/compile - Go Packages 访问私有函数 代码 package main import ( "fmt" "time" _ "unsafe"


令牌桶限流示例

令牌桶限流示例 package main import ( "context" "fmt" "time" "golang.org/x/time/rate" ) func main() { li


go linux环境配置

linux环境配置 vi ~/.profile export GOROOT=/usr/local/go export GOPROXY=https://goproxy.cn,direct export GO111MODULE=on export GOPATH=$HOME/go PATH=$PATH


go重定向输出崩溃堆栈

go重定向输出崩溃堆栈 windows // +build windows package log import ( "os" "syscall" "github.com/sirupsen/logrus" ) var ( crashFile *os.File kern


logrus日志配置

logrus日志配置 代码 package log import ( "bytes" "net/http" "os" "runtime" "strconv" "strings" "time"


C++实现Go中的defer

C++实现Go中的defer 原理:利用栈和析构 技巧: 利用__LINE__ 宏定义栈变量 利用C++变量名的就近原则,区分是否使用 init_defer_func_stack() 利用重载函数匹配规则,根据是否使用init_defer_func_stack,获取临时栈变量或者init_defer


Goland中使用Makefile

Windows Goland使用Makefile 安装Chocolatey 管理员打开powershell 执行Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityPr


阿里ddns 动态更新域名ip地址

阿里ddns动态更新域名ip地址 文档地址 阿里云 OpenAPI 开发者门户 (aliyun.com) 域名解析列表 (aliyun.com) AccessKey获取 (aliyun.com) package main import (


openssl生成证书

openssl生成证书 使用openssl生成 openssl genrsa -out ./key.pem 2048 openssl req -new -x509 -key ./key.pem -out cert.pem -days 3650 使用go标准库生成 go run $GOROOT/src


Go生成库给C C++

Go生成库给C/C++ Windows main.go package main /* #include <stdlib.h> */ import "C" import ( "net" "unsafe" ) //export GetMacAddr


golang交叉编译

golang交叉编译 demo test package main import ( "fmt" "runtime" ) func main() { fmt.Println("Test os") fmt.P


dlv 远程调试

dlv 远程调试 本地编辑Goland编译配置 远程机器安装 dlv go get github.com/go-delve/delve/cmd/dlv $GOPATH/bin 目录下会有dlv可执行程序 进入代码目录,通过dlv监听端口 dlv debug --headless --listen=:


slice和string互转

slice和string互转 // StringToBytes converts string to byte slice without a memory allocation. func StringToBytes(s string) []byte { return *(*[]byte<


Go调用C C++(cgo)

Go调用C/C++(cgo) 1. 直接调用代码 package main /* #include <stdio.h> // 结构体 typedef struct { char * name; int age; //double d; }Person; // 函数调用传参 void pr