57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <string>
 | 
						|
 | 
						|
/*
 | 
						|
// https://stackoverflow.com/questions/2164827/explicitly-exporting-shared-library-functions-in-linux
 | 
						|
// generate import export macro
 | 
						|
#if defined(_MSC_VER)
 | 
						|
//  Microsoft
 | 
						|
#define LIBCMO_RAW_EXPORT __declspec(dllexport)
 | 
						|
#define LIBCMO_RAW_IMPORT __declspec(dllimport)
 | 
						|
#elif defined(__GNUC__)
 | 
						|
//  GCC
 | 
						|
#define LIBCMO_RAW_EXPORT __attribute__((visibility("default")))
 | 
						|
#define LIBCMO_RAW_IMPORT
 | 
						|
#elif defined(__clang__)
 | 
						|
//  GCC
 | 
						|
#define LIBCMO_RAW_EXPORT __attribute__((visibility("default")))
 | 
						|
#define LIBCMO_RAW_IMPORT
 | 
						|
#else
 | 
						|
//  do nothing and hope for the best?
 | 
						|
#define LIBCMO_RAW_EXPORT
 | 
						|
#define LIBCMO_RAW_IMPORT
 | 
						|
#pragma warning Unknown dynamic link import/export semantics.
 | 
						|
#endif
 | 
						|
 | 
						|
// choosee proper style
 | 
						|
#if defined(LIBCMO_EXPORTING)
 | 
						|
#define LIBCMO_NAKED_EXPORT LIBCMO_RAW_EXPORT
 | 
						|
#else
 | 
						|
#define LIBCMO_NAKED_EXPORT LIBCMO_RAW_IMPORT
 | 
						|
#endif
 | 
						|
 | 
						|
// some work for cpp
 | 
						|
#if defined(__cplusplus)
 | 
						|
#define LIBCMO_EXPORT extern "C" LIBCMO_NAKED_EXPORT
 | 
						|
#else
 | 
						|
#define LIBCMO_EXPORT LIBCMO_NAKED_EXPORT
 | 
						|
#endif
 | 
						|
*/
 | 
						|
 | 
						|
#if defined(_WIN32)
 | 
						|
#define LIBCMO_OS_WIN32
 | 
						|
#endif
 | 
						|
 | 
						|
namespace LibCmo {
 | 
						|
	namespace Utils {
 | 
						|
 | 
						|
		struct VirtoolsContext {
 | 
						|
			std::string NameEncoding;
 | 
						|
 | 
						|
		};
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
}
 |