Ok. Thanks. What's the output of dumpbin.exe /EXPORTS /path/to/slib.dll showing the listing of your exported functions?
On Mon, Jun 24, 2019 at 2:37 PM <onop...@gmail.com> wrote: > > /* Code generated by cmd/cgo; DO NOT EDIT. */ > > /* package _/F_/Git/returnHWID-Arma */ > > > #line 1 "cgo-builtin-export-prolog" > > #include <stddef.h> /* for ptrdiff_t below */ > > #ifndef GO_CGO_EXPORT_PROLOGUE_H > #define GO_CGO_EXPORT_PROLOGUE_H > > #ifndef GO_CGO_GOSTRING_TYPEDEF > typedef struct { const char *p; ptrdiff_t n; } _GoString_; > #endif > > #endif > > /* Start of preamble from import "C" comments. */ > > > #line 3 "main.go" > > #include <stdlib.h> > #include <stdio.h> > #include <string.h> > > #line 1 "cgo-generated-wrapper" > > > /* End of preamble from import "C" comments. */ > > > /* Start of boilerplate cgo prologue. */ > #line 1 "cgo-gcc-export-header-prolog" > > #ifndef GO_CGO_PROLOGUE_H > #define GO_CGO_PROLOGUE_H > > typedef signed char GoInt8; > typedef unsigned char GoUint8; > typedef short GoInt16; > typedef unsigned short GoUint16; > typedef int GoInt32; > typedef unsigned int GoUint32; > typedef long long GoInt64; > typedef unsigned long long GoUint64; > typedef GoInt64 GoInt; > typedef GoUint64 GoUint; > typedef __SIZE_TYPE__ GoUintptr; > typedef float GoFloat32; > typedef double GoFloat64; > typedef float _Complex GoComplex64; > typedef double _Complex GoComplex128; > > /* > static assertion to make sure the file is being used on architecture > at least with matching size of GoInt. > */ > typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? > 1:-1]; > > #ifndef GO_CGO_GOSTRING_TYPEDEF > typedef _GoString_ GoString; > #endif > typedef void *GoMap; > typedef void *GoChan; > typedef struct { void *t; void *v; } GoInterface; > typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; > > #endif > > /* End of boilerplate cgo prologue. */ > > #ifdef __cplusplus > extern "C" { > #endif > > > extern void RVExtensionVersion(char* p0, size_t p1); > > extern void RVExtension(char* p0, size_t p1, char* p2); > > #ifdef __cplusplus > } > #endif > > > > > понедельник, 24 июня 2019 г., 14:00:49 UTC+3 пользователь Alexander Kapshuk > написал: >> >> Or was this it? >> >> #ifdef __cplusplus >> extern "C" { >> #endif >> extern void _RVExtensionVersion(char* p0, size_t p1); >> extern void _RVExtensionArgs(char* p0, size_t p1, char* p2, char** p3, int >> p4); >> extern void _RVExtension(char* p0, size_t p1, char* p2); >> #ifdef __cplusplus >> } >> #endif >> >> The 32-bit exports listed here, >> https://community.bistudio.com/wiki/Extensions, are most likely what >> is listed in the module-definition file ending in .def. >> Can you please try using the following declaration: >> //export RVExtension >> func RVExtension(output *C.char, outputsize C.size_t, input *C.char) {...} >> >> Compile your dll and post the output of dumpbin.exe /EXPORTS >> /path/to/slib.dll showing the listing of your exported symbols? >> >> On Mon, Jun 24, 2019 at 11:41 AM Alexander Kapshuk >> <alexande...@gmail.com> wrote: >> > >> > If I understand it correctly, cgo should have generated a >> > _cgo_export.h header with a declaration for your exported function. >> > Can you please post the generated declaration? >> > >> > On Mon, Jun 24, 2019 at 12:47 AM <ono...@gmail.com> wrote: >> > > >> > > We are trying to make the x32 version of the extension, as shown in the >> > > link below. >> > > https://community.bistudio.com/wiki/Extensions#C.2FC.2B.2B >> > > >> > > How we see, for x64 we must use entry points >> > > >> > > RVExtension >> > > RVExtensionArgs >> > > RVExtensionVersion >> > > >> > > >> > > but for x32 >> > > >> > > _RVExtension@12 >> > > _RVExtensionArgs@20 >> > > _RVExtensionVersion@8 >> > > >> > > >> > > It is very hard for me to explain to you exactly what we need, because I >> > > am new to this language, and C doesn’t know at all. I really hope that >> > > you understand what I mean. >> > > >> > > воскресенье, 23 июня 2019 г., 22:20:53 UTC+3 пользователь Kurtis Rader >> > > написал: >> > >> >> > >> On Sun, Jun 23, 2019 at 4:49 AM nicolas_boiteux via golang-nuts >> > >> <golan...@googlegroups.com> wrote: >> > >>> >> > >>> I need some assistance to export a GO dll function to a C program. >> > >>> >> > >>> The C program (wich i m not the author) required to call a function >> > >>> with this name: _RVExtension@12 >> > >> >> > >> >> > >> That is not a valid symbol (i.e., function name) in either C or Go. In >> > >> other words the following C is invalid: >> > >> >> > >> extern int _RVExtension@12(); >> > >> int main() { >> > >> _RVExtension@12(); >> > >> } >> > >> >> > >> Your question has nothing to do with Go or C as such. What does the >> > >> "@12" represent? Is it an API version number? In any event your >> > >> question is really about a specific build toolchain on a specific >> > >> platform. And you didn't even bother to tell us what platform you are >> > >> using. I'm guessing MS Windows but we shouldn't have to make such >> > >> guesses. >> > >> >> > >> -- >> > >> Kurtis Rader >> > >> Caretaker of the exceptional canines Junior and Hank >> > > >> > > -- >> > > You received this message because you are subscribed to the Google >> > > Groups "golang-nuts" group. >> > > To unsubscribe from this group and stop receiving emails from it, send >> > > an email to golan...@googlegroups.com. >> > > To view this discussion on the web visit >> > > https://groups.google.com/d/msgid/golang-nuts/ec18ff38-d70b-41ef-b7b4-fb243f407e1c%40googlegroups.com. >> > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/049bf6f7-113a-4d39-bb38-c4838c1d5f1a%40googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAJ1xhMVi_MceiuJXM%3DDFZ3xXnE27VhWLSCAhJj-TWVLSE6CEbQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.