windows: Don't use __declspec(dllexport) for plugin exports

Using __declspec(dllexport) causes duplicate export warnings to be
generated when compiling 64-bit builds. Name mangling also occurs on
functions that are exported this way, so it doesn't actually work with
the plugin system, which uses unmangled names.

The module definition file exports the functions without name mangling
and is sufficient on its own.
This commit is contained in:
Jonathan Li 2016-06-05 22:46:53 +01:00
parent 292c6810ad
commit 7c205d7a1e
6 changed files with 7 additions and 7 deletions

View File

@ -33,7 +33,7 @@
#define NEW_PLUGIN_APIS
#ifdef _MSC_VER
#define EXPORT_C(type) extern "C" __declspec(dllexport) type CALLBACK
#define EXPORT_C(type) extern "C" type CALLBACK
#else
#define EXPORT_C(type) extern "C" __attribute__((externally_visible,visibility("default"))) type
#endif

View File

@ -202,7 +202,7 @@ using namespace stdext;
#define alignas(n) __declspec(align(n))
#endif
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type __stdcall
#define EXPORT_C_(type) extern "C" type __stdcall
#define EXPORT_C EXPORT_C_(void)
#define ALIGN_STACK(n) alignas(n) int dummy__;

View File

@ -200,7 +200,7 @@ using namespace stdext;
#define __aligned(t, n) __declspec(align(n)) t
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type __stdcall
#define EXPORT_C_(type) extern "C" type __stdcall
#define EXPORT_C EXPORT_C_(void)
#define ALIGN_STACK(n) __aligned(int, n) __dummy;

View File

@ -91,7 +91,7 @@ extern Window GSwin;
#endif
#ifdef _MSC_VER
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK
#define EXPORT_C_(type) extern "C" type CALLBACK
#else
#define EXPORT_C_(type) extern "C" __attribute__((stdcall,externally_visible,visibility("default"))) type CALLBACK
#endif

View File

@ -26,7 +26,7 @@
#endif
#ifdef _MSC_VER
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK
#define EXPORT_C_(type) extern "C" type CALLBACK
#else
#define EXPORT_C_(type) extern "C" __attribute__((stdcall,externally_visible,visibility("default"))) type
#endif

View File

@ -36,8 +36,8 @@ typedef signed long long int64;
#define countof(a) (sizeof(a) / sizeof(a[0]))
#define EXPORT_C extern "C" __declspec(dllexport) void __stdcall
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type __stdcall
#define EXPORT_C extern "C" void __stdcall
#define EXPORT_C_(type) extern "C" type __stdcall
#define ALIGN_STACK(n) __declspec(align(n)) int __dummy;