Am 18.12.2010 19:28, schrieb Gregory Seidman:
> On Sat, Dec 18, 2010 at 10:57:29AM +0100, Andreas wrote:
> [...]
>>
>> // proto.h
>>
>> WIRESHARKAPI proto_tree* proto_tree_create_root(void);
>>
>> WIRESHARKAPI proto_item *
>> proto_tree_add_item(proto_tree *tree, const int hfindex, tvbuff_t *tvb,
>>       const gint start, gint length, const guint encoding);
>
> Looks good to me. Maybe WSPUBLIC or WSEXPORT would be a clearer name, but
> that's a detail to be worked out.

Well, the WINAPI definition is used in the Windows API (defined by 
Microsoft). FSDAPI declares functions exported by the FSD (file system 
driver) API.

The EXPORT is used in a different way: When you compile the FOO DLL, 
usually the FOO_EXPORTS is set. This is used to control if you get 
__declspec(import) or __declspec(exports).

Therefore I would suggest not to use WSEXPORT to defined a symbol that 
is part of the API.

>
>> The has some advantages
>>
>> - one central place to define how the functions become part of the API
>> in config.h
>>
>> - exactly one place of definition if a symbol is part of the API.
>> Currently you define the symbol in header and DEF file.
>>
>> - It is visible immediately if a declaration in the header files is part
>> if the API or not.
>
> Vital. I keep finding things in header files I want to use, then have to
> check the .def file to discover whether it's exported.

When we have an API definition in the header file, this will allow us to 
add the doxygen documentation of that API at the same point.

--
Andy


___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to