#if defined(_MSC_VER)
#define EXPORT_API extern "C" __declspec(dllexport)
#else
#define EXPORT_API extern "C" __attribute__((visibility("default")))
#endif 


EXPORT_API unsigned __int32 Ret_Int(unsigned __int32 argVal){
	unsigned __int32 retVal = (unsigned __int32)argVal;
	return retVal;
}
EXPORT_API unsigned __int32 Ret_Ptr(void *argVal){
	unsigned __int32 retVal = (unsigned __int32)argVal;
	return retVal;
}

EXPORT_API void Set_Val(__int32 *argVal, __int32 val){
	*argVal = val;;
	
}

EXPORT_API void Mul_Val(__int32 *arg1,__int32 *arg2,__int32 *arg3){
	*arg3 = (*arg1)*(*arg2);
	
}


unsigned __int32 Ret_Int(unsigned __int32 argVal){
	unsigned __int32 retVal = (unsigned __int32)argVal;
	return retVal;
}
unsigned __int32 Ret_Ptr(void *argVal){
	unsigned __int32 retVal = (unsigned __int32)argVal;
	return retVal;
}

void Set_Val(__int32 *argVal, __int32 val){
	*argVal = val;;
	
}

void Mul_Val(__int32 *arg1,__int32 *arg2,__int32 *arg3){
	*arg3 = (*arg1)*(*arg2);
	
}


--- 
+++ 
@@ -1,18 +1,25 @@
-unsigned __int32 Ret_Int(unsigned __int32 argVal){
+#if defined(_MSC_VER)
+#define EXPORT_API extern "C" __declspec(dllexport)
+#else
+#define EXPORT_API extern "C" __attribute__((visibility("default")))
+#endif 
+
+
+EXPORT_API unsigned __int32 Ret_Int(unsigned __int32 argVal){
 	unsigned __int32 retVal = (unsigned __int32)argVal;
 	return retVal;
 }
-unsigned __int32 Ret_Ptr(void *argVal){
+EXPORT_API unsigned __int32 Ret_Ptr(void *argVal){
 	unsigned __int32 retVal = (unsigned __int32)argVal;
 	return retVal;
 }
 
-void Set_Val(__int32 *argVal, __int32 val){
+EXPORT_API void Set_Val(__int32 *argVal, __int32 val){
 	*argVal = val;;
 	
 }
 
-void Mul_Val(__int32 *arg1,__int32 *arg2,__int32 *arg3){
+EXPORT_API void Mul_Val(__int32 *arg1,__int32 *arg2,__int32 *arg3){
 	*arg3 = (*arg1)*(*arg2);
 	
 }
Fix a test bug where dllexport qualifier was missing.
