use DLLAPI_EXPORT to avoid conflict