diff --git a/cplusplus/VImage.cpp b/cplusplus/VImage.cpp index 85186b21..26c06728 100644 --- a/cplusplus/VImage.cpp +++ b/cplusplus/VImage.cpp @@ -189,7 +189,8 @@ VOption::set( const char *name, std::vector value ) pair->input = true; g_value_init( &pair->value, VIPS_TYPE_ARRAY_DOUBLE ); - vips_value_set_array_double( &pair->value, NULL, value.size() ); + vips_value_set_array_double( &pair->value, NULL, + static_cast< int >( value.size() ) ); array = vips_value_get_array_double( &pair->value, NULL ); for( i = 0; i < value.size(); i++ ) @@ -212,7 +213,8 @@ VOption::set( const char *name, std::vector value ) pair->input = true; g_value_init( &pair->value, VIPS_TYPE_ARRAY_IMAGE ); - vips_value_set_array_image( &pair->value, value.size() ); + vips_value_set_array_image( &pair->value, + static_cast< int >( value.size() ) ); array = vips_value_get_array_image( &pair->value, NULL ); for( i = 0; i < value.size(); i++ ) { @@ -400,7 +402,7 @@ VOption::get_operation( VipsOperation *operation ) std::list::iterator i; for( i = options.begin(); i != options.end(); ++i ) - if( not (*i)->input ) { + if( ! (*i)->input ) { const char *name = (*i)->name; g_object_get_property( G_OBJECT( operation ), diff --git a/cplusplus/include/vips/VError8.h b/cplusplus/include/vips/VError8.h index 0cb7478d..627222c1 100644 --- a/cplusplus/include/vips/VError8.h +++ b/cplusplus/include/vips/VError8.h @@ -39,7 +39,7 @@ VIPS_NAMESPACE_START -class VError : public std::exception { +class VIPS_CPLUSPLUS_API VError : public std::exception { std::string _what; public: diff --git a/cplusplus/include/vips/VImage8.h b/cplusplus/include/vips/VImage8.h index 5b539b20..844d3c8e 100644 --- a/cplusplus/include/vips/VImage8.h +++ b/cplusplus/include/vips/VImage8.h @@ -43,11 +43,11 @@ VIPS_NAMESPACE_START /* Small utility things. */ -std::vector to_vectorv( int n, ... ); -std::vector to_vector( double value ); -std::vector to_vector( int n, double array[] ); -std::vector negate( std::vector value ); -std::vector invert( std::vector value ); +VIPS_CPLUSPLUS_API std::vector to_vectorv( int n, ... ); +VIPS_CPLUSPLUS_API std::vector to_vector( double value ); +VIPS_CPLUSPLUS_API std::vector to_vector( int n, double array[] ); +VIPS_CPLUSPLUS_API std::vector negate( std::vector value ); +VIPS_CPLUSPLUS_API std::vector invert( std::vector value ); enum VSteal { NOSTEAL = 0, @@ -162,9 +162,9 @@ public: }; -class VImage; -class VInterpolate; -class VOption; +class VIPS_CPLUSPLUS_API VImage; +class VIPS_CPLUSPLUS_API VInterpolate; +class VIPS_CPLUSPLUS_API VOption; class VOption { diff --git a/cplusplus/include/vips/vips8 b/cplusplus/include/vips/vips8 index 87bce4d2..d1c70ffa 100644 --- a/cplusplus/include/vips/vips8 +++ b/cplusplus/include/vips/vips8 @@ -34,6 +34,19 @@ #include +/* + Define VIPS_CPLUSPLUS_EXPORTS to build a DLL using MSVC +*/ +#ifdef _MSC_VER +# ifdef VIPS_CPLUSPLUS_EXPORTS +# define VIPS_CPLUSPLUS_API __declspec(dllexport) +# else +# define VIPS_CPLUSPLUS_API __declspec(dllimport) +# endif +#else +# define VIPS_CPLUSPLUS_API +#endif + #define VIPS_NAMESPACE_START namespace vips { #define VIPS_NAMESPACE_END }