Wireshark mailing list archives
Re: Troubles with ASN generated code
From: Graham Bloice <graham.bloice () trihedral com>
Date: Sun, 21 May 2017 22:54:50 +0100
On 21 May 2017 at 20:57, Guy Harris <guy () alum mit edu> wrote:
On May 21, 2017, at 12:43 PM, Graham Bloice <graham.bloice () trihedral com> wrote:I haven't looked at the specific issue, but Windows can export data froma DLL into another DLL. Yes, but if DLL A exports a data item called "fff" that's imported by DLL B, and DLL B uses it in this fashion: static struct xyzzy foo { ... &fff, ... }; will that work? You might be able to do xxx = fff; but can you take the address of the exported item and use that to initialize a pointer in a static data structure.
It would appear not in a static initializer list. I can do it piecemeal, e.g. foo.member = &fff. BTW, I'm testing with VS2015. If I try to assign &fff in an initialiser list I get an "error C2099: initializer is not a constant".
And will it work if DLL B is loaded at run time?
The piecemeal assignment does. I've attached dlltest2.zip to show this. main.c is now compiled with no reference to dllimport.lib, i.e. cl main.c dllexport.lib
That's the specific issue here.The data to be exported should be declared __declspec(dllexport),That's WS_DLL_PUBLIC_DEF from ws_symbol_export.h, if we're building for Windows with MSVC and WS_BUILD_DLL is defined.and when it is required to be imported declared as __declspec(dllimport).That's WS_DLL_PUBLIC_DEF from ws_symbol_export.h, if we're building for Windows with MSVC and WS_BUILD_DLL *isn't* defined. WS_DLL_PUBLIC is "WS_DLL_PUBLIC_DEF extern". So you *declare* data items, in header files, with WS_DLL_PUBLIC, and you *define* them, in source files, with WS_DLL_PUBLIC_DEF.
-- Graham Bloice
Attachment:
dlltest2.zip
Description:
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Troubles with ASN generated code Jaap Keuter (May 18)
- Re: Troubles with ASN generated code Guy Harris (May 18)
- Re: Troubles with ASN generated code Jaap Keuter (May 19)
- Re: Troubles with ASN generated code Guy Harris (May 19)
- Re: Troubles with ASN generated code Jaap Keuter (May 20)
- Re: Troubles with ASN generated code Graham Bloice (May 21)
- Re: Troubles with ASN generated code Guy Harris (May 21)
- Re: Troubles with ASN generated code Graham Bloice (May 21)
- Re: Troubles with ASN generated code Guy Harris (May 21)
- Re: Troubles with ASN generated code Graham Bloice (May 21)
- Re: Troubles with ASN generated code Graham Bloice (May 21)
- Re: Troubles with ASN generated code Guy Harris (May 19)