#include <windows.h>

// prototypes
int __declspec(dllexport) Overload(int);
char __declspec(dllexport) Overload(char*);

extern "C" {
  int __declspec(dllexport) __fastcall FastcallFunc(void);
  int __declspec(dllexport) __pascal PascalFunc(void);
  int __declspec(dllexport) __cdecl CdeclFunc(void);
  int __declspec(dllexport) __stdcall StdcallFunc(void);
}

// definitions
int Overload(int i)
{
  return i;
}

char Overload(char* s)
{
  return s[0];
} 

extern "C" {

int __fastcall FastcallFunc(void)
{
  return 1;
}

int __pascal PascalFunc(void)
{
  return 1;
}

int __cdecl CdeclFunc(void)
{
  return 1;
}

int __stdcall StdcallFunc(void)
{
  return 1;
}

}

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
	return 1;
}

