草庐IT

Windows的C++内存分配

全部标签

windows - 转到 : Raw winsock

我正在尝试创建一个简单的tcp原始winsock,但我的socket.Recvfrom出现错误“不支持的套接字”,我做错了什么?packagemainimport("golang.org/x/sys/windows""github.com/google/gopacket""github.com/google/gopacket/layers""log""net""sync""os"//~"syscall""time""fmt""errors""unsafe")constSIO_RCVALL=windows.IOC_IN|windows.IOC_VENDOR|1typeHandlestru

Go 程序在 WIndows 7 中无法运行

我正在使用这个程序来创建一个单链表并打印列表的元素。它在我的Mac上工作,但当我在Windows7中尝试相同的程序时,它没有按预期工作。有人可以确定这里有什么问题吗?//Createasinglelinkedlistanddisplayelementsoflistpackagemainimport"fmt"//NodestructuretypeNodestruct{ValueintNext*Node}funcmain(){varvalueintvarhead,current*Node//Createlinkedlistfori:=0;i输出E:\go>gorunlinked_list.

go - 将 slice 从 c 传递给 golang 是否会进行内存复制?

我需要将float32(或字节)的一大块从C传递到Go库。代码如下:packagemainimport("C""fmt")//exportPrintIntfuncPrintInt(x[]float32){fmt.Println(x)}funcmain(){}用gobuild-buildmode=c-archivefoo.go编译后我得到了foo.h,这里是它的一部分:typedefGoInt64GoInt;typedefstruct{void*data;GoIntlen;GoIntcap;}GoSlice;#endif/*Endofboilerplatecgoprologue.*/#i

pointers - Golang : help understanding pointers, 分配和意外行为

所以我带着更多初学者的问题回来了,这些问题我似乎无法全神贯注。我正在试验以下代码。funcmain(){start:=time.Now()varpowers[]*big.Intfori:=1;i我的意图是按以下方式将Sub()的结果分配给diffdiff.Sub(powers[i+1],v)然而,这导致seqDiffs的值为1995(正确的最后一个值)一遍又一遍地重复。我知道这很可能是因为seqDiffs只是指向相同内存地址的指针列表,但我不明白的是为什么下面的工作正常v.Sub(powers[i+1],v)seqDiffs=append(seqDiffs,v)这导致seqDiffs成

windows - 在 Go 中检测 windows 版本以找出启动文件夹

有没有办法检测主机操作系统是XP、Vista、7、8还是10?runtime.GOOS只返回“windows”。这是因为我试图操作启动文件夹中的文件。在WindowsVista、7、8、10上,它位于:%appdata%\Roaming\Microsoft\Windows\StartMenu\Programs\Startup在WindowsXP上它位于:DocumentsandSettings\%username%\StartMenu\Programs\Startup 最佳答案 为什么不使用windows注册表?https://go

go - 运行 .exe 时保持提示窗口打开 (windows)

我有一个快速脚本,它从文本文件中抓取一些数据并将一些汇总结果输出给用户。当通过双击可执行文件在Windows上运行它时,它运行得非常快并关闭命令提示符并且无法看到程序的结果。我知道我可以进入命令提示符并从那里运行它。但是,当用户双击.exe文件运行它以保持窗口打开以便可以看到结果时,我能做些什么吗? 最佳答案 一个技巧是在应用程序结束时等待用户输入。一旦用户按下任意键,退出应用程序。片段:funcmain(){//Youroriginalcode...fmt.Printf("Pressanykeytoexit...")b:=make

windows 上的 Golang 依赖管理不起作用(GOPATH 错误)

我尝试使用不同的依赖管理工具:godep和dep.两者都因类似错误而失败。我应该如何设置环境以及我应该在哪里放置资源?部门PSD:\Work\Golang\src\ChrBack>depinitrootprojectimport:D:\Work\Golang\src\ChrBackisnotwithinanyGOPATH/srcgodepPSD:\Work\Golang\src\ChrBack>godepsavegodep:[WARNING]:godepshouldonlybeusedinsideavalidgopackagedirectoryandgodep:[WARNING]:ma

go - 如何在程序运行时安全地交换内存映射?

我有一个正在运行的go服务,它在内存中有一个map,比如map1。map数据(键和值)依赖于存储在S3中的文件。一个goroutine正在运行以监控这个文件,如果有变化,下载文件,解析它,并创建一个新的map,比如map2。如何在不导致其他线程读取不一致数据的情况下交换map1和map2的内容?下面我大致了解了我是如何考虑解决这个问题的。以下程序的输出是“map1-a”序列,后跟“map2-a”序列。map换了。这是最好的方法吗?packagemainimport("fmt""time")funcinitializeAndMonitor()*map[string]string{map1

windows - 如何在 golang 中使用 winspool.drv 进行双面打印

我需要基本的打印功能来打印可变页面大小的PDF。我能够使用我刚刚发布的以下代码来实现它here.但是,尝试访问打印机选项以使PDF双面打印似乎非常复杂。有没有一种简单的方法可以让这些PDF双面打印? 最佳答案 刚刚遇到这个。如果没有在Windows中呈现PDF然后打印它的东西,我不确定你在做什么是可能的。您正在做的(我认为)是将PDF直接发送到支持直接打印PDF的打印机-并非所有打印机都支持。这意味着打印机选项的命令不会随它一起发送,并且它会绕过Windows打印驱动程序,您可以尝试将一些PJL(打印机作业语言)命令添加到您发送的P

go - 理解 Go 的内存模型

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion避免锁定并发C代码的一个看似聪明的技巧是这样的:我有一个全局变量ptr指向一个mystruct我想更新那个结构.因此,我将分配一个新的mystruct,将数据填充到中,然后才我将通过指向ptr使更改对世界可见到新的mystruct对象。这是不正确的,因为它取决于写入的顺序,并且不能保证对ptr的写入在所有存储到新的mystruct之后对其他线程可见已经发生。因此,新的mystruct对象可以部分初始化返回