草庐IT

记录 | KMS工具激活Office报错 Error Code: 0x80080005

问题说明使用学校提供的正版化工具激活Office,报错ErrorCode:0x80080005解决方法office甚至没有提供0x80080005错误码的含义,最后在Office-Tool的Issues中找到了解决方法:https://github.com/YerongAI/Office-Tool/issues/216#issue-836891168删除注册表中的KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions\SppExtComObj.exe,重新激活即可

golang 进行意外的堆内存分配

在进行基准测试时,我注意到一个令人惊讶的堆内存分配。减少复制后,我得到以下结果://---Reprofile---funcmemAllocRepro(values[]int)*[]int{for{break}return&values}//---Benchmarkfile---funcBenchmarkMemAlloc(b*testing.B){values:=[]int{1,2,3,4}fori:=0;i这是基准输出:BenchmarkMemAlloc-45000000040.2ns/op32B/op1allocs/opPASSokmemalloc_debugging2.113sSu

golang 进行意外的堆内存分配

在进行基准测试时,我注意到一个令人惊讶的堆内存分配。减少复制后,我得到以下结果://---Reprofile---funcmemAllocRepro(values[]int)*[]int{for{break}return&values}//---Benchmarkfile---funcBenchmarkMemAlloc(b*testing.B){values:=[]int{1,2,3,4}fori:=0;i这是基准输出:BenchmarkMemAlloc-45000000040.2ns/op32B/op1allocs/opPASSokmemalloc_debugging2.113sSu

c - 如何使用 cgo 用 argv 包装 C "hello world"?

考虑以下hello.c:#includeintmain(intargc,char*argv[]){printf("Hello,world!argv[0]=%s\n",argv[0]);}Makefile只包含一行:all:hello。我如何围绕Go程序包装(和编译)此函数,就像在这个(非工作)示例中一样?packagemain//intmain(intargc,char*argv[]);import"C"funcmain(){argc:=C.int(1);argv:=make([]*C.char,1)argv[0]=C.CString("hai");C.main(argc,&argv[

c - 如何使用 cgo 用 argv 包装 C "hello world"?

考虑以下hello.c:#includeintmain(intargc,char*argv[]){printf("Hello,world!argv[0]=%s\n",argv[0]);}Makefile只包含一行:all:hello。我如何围绕Go程序包装(和编译)此函数,就像在这个(非工作)示例中一样?packagemain//intmain(intargc,char*argv[]);import"C"funcmain(){argc:=C.int(1);argv:=make([]*C.char,1)argv[0]=C.CString("hai");C.main(argc,&argv[

go - 将数组作为函数参数传递

我希望以下代码片段生成a作为{0x01,0x02}(按值传递)或作为{0x03,0x02,0x01}(通过引用传递)。奇怪的是,它生成的输出为{0x03,0x02}。你能帮我理解这是为什么吗?packagemainimport"fmt"functest1(t[]byte){t[0]=0x03t=append(t,0x01)}funcmain(){a:=[]byte{0x01,0x02}test1(a)_=afmt.Printf("%v",a)} 最佳答案 在Go中,[]byte不是一个数组,它是一个字节slice。发生的事情是a的大

go - 将数组作为函数参数传递

我希望以下代码片段生成a作为{0x01,0x02}(按值传递)或作为{0x03,0x02,0x01}(通过引用传递)。奇怪的是,它生成的输出为{0x03,0x02}。你能帮我理解这是为什么吗?packagemainimport"fmt"functest1(t[]byte){t[0]=0x03t=append(t,0x01)}funcmain(){a:=[]byte{0x01,0x02}test1(a)_=afmt.Printf("%v",a)} 最佳答案 在Go中,[]byte不是一个数组,它是一个字节slice。发生的事情是a的大

go - 为什么 go v1.8 在导入 zmq4 时无法在 armv7 上分配堆位图?

我在armv7目标上使用gov1.8,在我导入zeromq之前一切正常,然后连这个都不起作用:packagemainimport(zmq"github.com/pebbe/zmq4""fmt")funcmain(){fmt.Println(zmq.Version())}在目标上运行它给出以下结果:./zmqfatalerror:runtime:outofmemoryruntimestack:runtime.throw(0xc8d3d,0x16)/usr/lib/go/src/runtime/panic.go:596+0x70fp=0x7eb018a0sp=0x7eb01894runti

go - 为什么 go v1.8 在导入 zmq4 时无法在 armv7 上分配堆位图?

我在armv7目标上使用gov1.8,在我导入zeromq之前一切正常,然后连这个都不起作用:packagemainimport(zmq"github.com/pebbe/zmq4""fmt")funcmain(){fmt.Println(zmq.Version())}在目标上运行它给出以下结果:./zmqfatalerror:runtime:outofmemoryruntimestack:runtime.throw(0xc8d3d,0x16)/usr/lib/go/src/runtime/panic.go:596+0x70fp=0x7eb018a0sp=0x7eb01894runti

go - 增加 map 最快的方法是什么?

我注意到map[int]int变量的以下两个增量方法的速度因子为3倍:快速:myMap[key]++慢:myMap[key]=myMap[key]+1这可能并不令人惊讶,因为至少天真地,在第二种情况下,我指示Go访问myMap两次。我只是好奇:任何熟悉Go编译器的人都可以帮助我理解map上这些操作之间的区别吗?了解编译器的工作原理后,是否有更快的递增映射技巧?编辑:在本地运行差异不太明显,但仍然存在:packagemainimport("fmt""math""time")funcmain(){x,y:=make(map[int]int),make(map[int]int)x[0],y[