Why not use the syntax:

#ifdef __cplusplus
extern "C" {
#endif

<declarations all go here...>

#ifdef __cplusplus
}
#endif

This would avoid duplicating the declarations...  Not a big deal when there's a 
single function, but if there are more functions it prevents bugs from being 
introduced due to some declarations being forgotten when changes are made.

-Fab

Hefty, Sean wrote on Thu, 2 Sep 2010 at 12:17:30

> Winverbs defines WvGetObject that users must invoke to obtain the
> winverb provider interface.  WvGetObject is defined in the header
> files as dllexport, but callers require dllimport.  The winverbs
> sources file already defines EXPORT_WV_SYMBOLS that is intended to
> distinguish if we are really trying to export or import WvGetObject.
> Update winverbs.h to support dllimport for clients including
> winverbs directly.
> 
> Signed-off-by: Sean Hefty <[email protected]>
> ---
> Several other headers have a similar issue.  Just fixing winverbs
> for now.
> 
> Index: winverbs.h
> =================================================================== ---
> winverbs.h    (revision 2870) +++ winverbs.h  (working copy) @@ -1542,10
> +1542,16 @@
>               ) PURE;
>  };
> +#ifdef EXPORT_WV_SYMBOLS
> +#define WV_EXPORT __declspec(dllexport)
> +#else
> +#define WV_EXPORT __declspec(dllimport)
> +#endif
> +
>  #ifdef __cplusplus
> -extern "C" __declspec(dllexport) HRESULT WvGetObject(REFIID riid,
> LPVOID FAR* ppvObj);
> +extern "C" WV_EXPORT HRESULT WvGetObject(REFIID riid, LPVOID FAR*
> ppvObj);
>  #else
> -__declspec(dllexport) HRESULT WvGetObject(REFIID riid, LPVOID FAR*
> ppvObj); +WV_EXPORT HRESULT WvGetObject(REFIID riid, LPVOID FAR* ppvObj);
>  #endif
>  
>  #endif // _WINVERBS_H_
> _______________________________________________
> ofw mailing list
> [email protected]
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to