Wireshark-dev: Re: [Wireshark-dev] Importing initializers in plugins on Win32

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Wed, 28 Feb 2007 10:22:44 -0800
Ulf Lamping wrote:

AFAIK, this is caused as the compiler cannot know the size of this.
So  you *can* use this value inside the plugin (e.g. using val_to_str),
but you cannot use it to *initialize* the hf_register_info.

It shouldn't need to know the size, as you're just taking the address of it. It should be able to know the size, however, as it's just a structure.

However, it may be that Windows' run-time linker (or whatever the code that implements DLLs at run time is called) can't resolve a data reference from a run-time-loaded DLL (a plugin) to a data item from a DLL loaded as a library, so that the compiler can't generate code with the appropriate relocation information for that item, and thus doesn't treat TFS(&flags_set_truth) as a compile-time constant.

I'm not enough of an expert on Windows' run-time linker to say whether that's the case or not.