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 <alexander.kaps...@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 <onop...@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 golang-nuts+unsubscr...@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/CAJ1xhMUDf6P-rjgfWFNHqz5SK4T%2B9kWVPPxhnUtCQOYTS_NYsw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.