it tried to also allow those flags by setting the env variablee ldflag 
allow but it seems to have no effect.

Le lundi 24 juin 2019 21:15:34 UTC+2, nobody nobodye a écrit :
>
> it seems that flags --no-undefined --enable-runtime-pseudo-reloc are 
> invalid flags :(
>
> /*
> #cgo LDFLAGS: --no-undefined --enable-runtime-pseudo-reloc
> #include <stdlib.h>
> #include <stdio.h>
> #include <string.h>
> */
> import "C"
>
>
>
> Le lundi 24 juin 2019 18:58:22 UTC+2, Alexander Kapshuk a écrit :
>>
>> The part of interest is the functions you want exported from the Go 
>> program: 
>>
>> 1    0 000813C0 RVExtension 
>> 2    1 00081360 RVExtensionArgs 
>> 3    2 00081310 RVExtensionVersion 
>>
>> This article, http://www.mingw.org/wiki/sampledll, in section 
>> 'Building and using a DLL without the dllexport/dllimport attibutes' 
>> suggests the following approach: 
>> If you pass the --no-undefined and --enable-runtime-pseudo-reloc 
>> options to the linker, you don't have to add dllimport or dllexport 
>> attributes to the source code that the DLL is made with ; all 
>> functions are imported/exported automatically by default, just like in 
>> unices. 
>>
>> Can you please try putting the following cgo directive for the linker 
>> in your Go file: 
>> // #cgo LDFLAGS: --no-undefined --enable-runtime-pseudo-reloc 
>>
>> If you then rebuild your dll and see if the definition of your 
>> exported functions changes to _fn_name@arg_size in the output of 
>> dumpbin. 
>> You can use 'findstr' to filter the output of dumpbin based on a 
>> search pattern like so: 
>> dumpbin.exe /EXPORTS slib.dll | findstr "RVExtension" 
>>
>> On Mon, Jun 24, 2019 at 7:35 PM nicolas_boiteux via golang-nuts 
>> <golan...@googlegroups.com> wrote: 
>> > 
>> > Hello Alexander 
>> > 
>> > you can find the dump at this place: 
>> > https://pastebin.com/cg33nktu 
>> > 
>> > Le lundi 24 juin 2019 13:00:49 UTC+2, Alexander Kapshuk a écrit : 
>> >> 
>> >> 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 golan...@googlegroups.com. 
>> > To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/0e90774a-3814-4d71-b752-8cd399cb26e3%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/42f99da7-1f92-4826-90a3-b785fdc3d071%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to