[Paraview] VTK_IO_EXPORT vs VTK_EXPORT (VTK_ABI_IMPORT vs VTK_ABI_EXPORT)

Xunlei Wu xunlei at renci.org
Sat Apr 16 21:04:33 EDT 2011


Thanks a lot, Marcus.
I was hoping to figure out why my plugin dll does not behave the same way as other internally built reader classes (dlls) which have the clause of dllexport and dllimport depending on the hosting project. My plugin dll only specifies dllexport as instructed by ParaView plugin examples. These internal readers can populate "Cell/Point Array Status" list in the "Object Inspector" widget -> "Properties" panel, whereas my reader plugin cannot. Following vtkAVSucdReader.h/cxx does not work yet. Any hint? Sorry for the divergence of the topic. My real problem has been posted in 
http://www.paraview.org/pipermail/paraview/2011-March/020696.html

Best,
xunlei

-----Original Message-----
From: Marcus D. Hanwell [mailto:marcus.hanwell at kitware.com] 
Sent: Saturday, April 16, 2011 9:24 AM
To: Xunlei Wu
Cc: paraview at paraview.org
Subject: Re: [Paraview] VTK_IO_EXPORT vs VTK_EXPORT (VTK_ABI_IMPORT vs VTK_ABI_EXPORT)

On Sat, Apr 16, 2011 at 6:10 AM, Xunlei Wu <xunlei at renci.org> wrote:
> Hi All,
>
> Could anyone please explain the difference between VTK_IO_EXPORT and 
> VTK_EXPORT (beyond the below definition)? I am writing a file reader 
> plugin and defined my class as VTK_EXPORT. However, many VTK/IO/ 
> reader examples, e.g. vtkAVSucdReader, vtkImageReader are defined as 
> VTK_IO_EXPORT. From the source code,
>
> #define VTK_EXPORT VTK_ABI_EXPORT
>
> #if defined(vtkIO_EXPORTS)
>   #define VTK_IO_EXPORT VTK_ABI_EXPORT #else
>   #define VTK_IO_EXPORT VTK_ABI_IMPORT #endif

There is only a different on the Windows platform, but if you notice it only exports if vtkIO_EXPORTS is defined, otherwise it imports.
THis is necessary for DLLs on Windows, all though platforms that support symbol visibility only have a concept of exporting. So a macro is needed for each DLL in order to ensure the symbols are imported/exported correctly for shared windows libraries.

Marcus


More information about the ParaView mailing list