草庐IT

dll-reference

全部标签

pointers - 调用结构函数给出 "cannot refer to unexported field or method"

我有这样的结构:typeMyStructstruct{Idstring}和函数:func(m*MyStruct)id(){//doingsomethingwithidhere}我还有一个这样的结构:typeMyStruct2struct{m*MyStruct}现在我有一个函数:funcfoo(str*MyStruct2){str.m.id()}但是我在编译时遇到错误:str.m.idundefined(cannotrefertounexportedfieldormethodmypackage.(*MyStruct)."".id如何正确调用这个函数? 最佳答案

戈兰错误: reference to undefined identifier ‘syscall.TUNSETIFF’

因此,我一直在尝试使用gccgo构建法兰绒(https://github.com/coreos/flannel)。这是我在构建时遇到的错误:$./buildBuildingflanneld...#github.com/coreos/flannel/pkg/ipgopath/src/github.com/coreos/flannel/pkg/ip/tun.go:57:37:error:referencetoundefinedidentifier‘syscall.TUNSETIFF’err=ioctl(int(tun.Fd()),syscall.TUNSETIFF,uintptr(unsa

c - 为什么我用cgo的时候报错 "undefined reference to ` add2”

目录如下:-包括测试.h-liblibmytest.so-源代码测试.gotest.go代码如下:packagemain/*#cgoCFLAGS:-I../include#cgoLDFLAGS:-L../lib-lmytest#include"Test.h"*/import"C"funcmain(){C.add2(10,10)}当我使用gobuildtest.go时,控制台报告:#command-line-arguments/tmp/go-build168903458/command-line-arguments/_obj/test.cgo2.o:在函数_cgo_9efddd4c1a4

go - 如何调用自定义dll文件中的函数

现在我得到了这样描述的函数intReadCard(char*room,char*gate,char*stime,char*guestname,char*guestid,char*lift,char*track1,char*track2,long*cardno,int*st,int*Breakfast);`这就是我做的room:=""gate:=""stime:=""guestname:=""guestid:=""lift:=""track1:=""track2:=""cardno:=int64(0)st:=int64(0)Breakfast:=int64(0)MAINDLL,_:=sy

go - undefined reference to error 仅针对某些函数

我有一个库和一个为它构建的C接口(interface)。我的程序使用versionString()编译得很好,但使用loadConfig()就不行。这怎么可能?walker.h:#ifndefWFE_C_H#defineWFE_C_H#ifdef__cplusplusextern"C"{#endifconstchar*versionString();void*loadConfig(constchar*filePath,char*errorMessageBuffer,intbufferLen);#ifdef__cplusplus}#endif#endif工作版本:packagemain/

go - 如何在我的 go 程序中删除 wpcap.dll 的需要?

我在我的程序中使用了gopacket。在Linux上,它运行完美。但是在Windows上,如果我之前没有安装WinPcap,整个程序就会崩溃。我的计划是检查是否安装了WinPcap,如果没有安装则通知用户他需要它才能使用100%的所有功能。但我还没有说到这一点。如果WinPcap不可用,我就不能使用gopacket。我的意思是......没有一行代码(=>崩溃)有人知道我该如何解决这个问题吗?我实际上不需要gopacket。我的计划是,如果安装了,很好,super!如果没有,不关心...做其他事情。但现在我有两个选择...完全删除gopacket或找到一种无需wpcap.dll即可启动

go - 不为 dll 或 iso 文件添加扩展名是一种不好的做法吗?

我正在使用go插件包,按照指南,他们说我应该使用buildmode=plugin创建一个iso文件,输出应该有扩展名so。这是经验法则吗?我应该总是添加扩展名吗?还是品味问题?谢谢! 最佳答案 通常,插件(有时称为共享/动态库)具有依赖于它们运行的​​平台的扩展。对于Windows,该扩展名往往是.dll(“动态链接库”)。但是,在撰写本文时,Go不支持Windows插件。对于Linux/BSD系统,该扩展名往往是.so(对于“共享对象”)这是Go文档推荐您使用的。在documentationforthepluginpackage之

go - 使用系统调用调用 mono-2.0-sgen.dll 得到 "not a valid Win32 application"

我想通过Go使用附带的Mono框架执行HelloWorldConsole.exe。所以我想调用mono-2.0-sgen.dll函数“mono_main”来执行exe。mono-2.0-sgen.dll是适用于MSWindows的PE32可执行文件,see.但我收到错误“不是有效的Win32应用程序”_=os.Setenv("MONO_PATH",`\mono\lib\mono\4.5;C:\DEV\HelloWorldConsole\HelloWorldConsole\bin\Debug`)_=os.Setenv("MONO_CFG_DIR",`"C:\ProgramFiles(x8

go - 是否可以在 GO 中找到 Windows 上加载的 DLL 的路径?

我有以下GO代码:packagemainimport("syscall")funcmain(){varmod,_=syscall.LoadLibrary("user32.dll")}成功加载user32.dll文件。(这是我在网上找到的一个例子的修改版本)。但是我不知道这个DLL存在于文件系统的哪个位置。我一直在寻找一种方法让Go能够通过syscall库告诉我这一点,但还没有找到实现它的方法。有谁知道获取已加载DLL路径的方法吗? 最佳答案 我现在无法访问运行Go的Windows机器,但它应该是这样的。请注意代码中缺乏适当的资源/错

windows - 如何在 Golang 中将 void 指针传递给 Windows DLL (void**)

我正在尝试使用Golang在Windows上加载ChakraCore.dll,但我无法弄清楚我需要将什么参数类型作为第三个参数传递。我阅读librarycode的假设并松散地遵循EmbeddingChakraCore是第三个参数需要是空指针指针(void**),因为头文件将JsRuntimeHandle定义为typedefvoid*JsRuntimeHandle;如果可能的话,我也希望避免使用CGo。控制台输出:panic:JsCreateRuntimefailed:AnargumenttoahostingAPIwasnullinacontextwherenullisnotallowe