// test_dll.cpp : Defines the exported functions for the DLL application. // //#include "stdafx.h" #include #define DllExport __declspec( dllexport ) void test1(int * x) { *x = 23; } void test2(int x, unsigned y) { return; } void test3(int x, unsigned y, short z) { return; } void test4(int x, unsigned y, unsigned short z, double * t) { return; } void test5(int * x, unsigned y, unsigned short z, const double * t, const std::string u) { return; } void test6(const double * const x, const std::string & y, std::string && z) { return; } int test7(decltype(&test4)) { return 0; } int test8(decltype(&test7)) { return 0; } int test9(decltype(&test8)) { return 0; } unsigned long ***************** test10(char *& x) { return nullptr; } int test_array(char a[12], int b[12][34], std::string c[12][34][56], double* d[12][34][56][78]) { return 0; } struct Empty {}; int test_array_empty_struct(Empty a[12], Empty b[12][34], Empty c[12][34][56], Empty d[12][34][56][78]) { return 0; } class DllExport A { public: A() {} A(const A &) = delete; A(A && a) {} ~A() {} void meth1(int) { } void meth1(double) { } void meth1(short, signed char) {} protected: void meth2(int) { return; } A & meth2(double) { return *this; } static void meth2(short, signed char) { return; } private: struct B { void meth3() { return; } }; B meth4(A *, B &&) { return B(); } };