mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
* Replace C++/CLI components with P/Invoke * Deleted C++/CLI projects * Use Utf8StringHandle to marshal UTF-8 strings * Use plaform-default calling convention * Handle DLL preloading on Linux and macOS * Change intermediate and output directories of native projects * Improve P/Invoke documentation
57 lines
1.1 KiB
C
57 lines
1.1 KiB
C
#pragma once
|
|
|
|
#if defined(_MSC_VER)
|
|
#if _MSC_VER < 1910 // MSVC 2017-
|
|
#error MSVC 2017 or later is required.
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW__)
|
|
#ifdef _AS_DLL
|
|
#ifdef __GNUC__
|
|
#define _AS_EXPORT __attribute__ ((dllexport))
|
|
#else
|
|
#define _AS_EXPORT __declspec(dllexport)
|
|
#endif
|
|
#else
|
|
#ifdef __GNUC__
|
|
#define _AS_EXPORT __attribute__ ((dllimport))
|
|
#else
|
|
#define _AS_EXPORT __declspec(dllimport)
|
|
#endif
|
|
#endif
|
|
#define _AS_LOCAL
|
|
#else
|
|
#if __GNUC__ >= 4
|
|
#define _AS_EXPORT __attribute__ ((visibility ("default")))
|
|
#define _AS_LOCAL __attribute__ ((visibility ("hidden")))
|
|
#else
|
|
#define _AS_EXPORT
|
|
#define _AS_LOCAL
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
#ifndef _EXTERN_C_STMT
|
|
#define _EXTERN_C_STMT extern "C"
|
|
#endif
|
|
#else
|
|
#ifndef _EXTERN_C_STMT
|
|
#define _EXTERN_C_STMT
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef _AS_CALL
|
|
#if defined(WIN32) || defined(_WIN32)
|
|
#define _AS_CALL __stdcall
|
|
#else
|
|
#define _AS_CALL /* __cdecl */
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(_MSC_VER)
|
|
#define AS_API(ret_type) _EXTERN_C_STMT _AS_EXPORT ret_type _AS_CALL
|
|
#else
|
|
#define AS_API(ret_type) _EXTERN_C_STMT _AS_EXPORT _AS_CALL ret_type
|
|
#endif
|