Oww.. my freaking head hurts.. cursed the man who invented programming.

Screw all my other questions as I have fixed 'em.. just one remaining:

The following doesn't work. GetProcAddress() fails even though this is how I seen it written in many tutorials.
Code:
__declspec(dllexport) int Multiply(int x, int y)
{
  return x*y;
}
While the following works!?!? My GetProcAddress() works perfect now..!?
Code:
extern "C" __declspec(dllexport) int Multiply(int x, int y)
{
  return x*y;
}
My question is what is the extern "C" do? Why do I need it? And why do places (i think even MSDN documentation examples) say i only needed __declspec(dllexport)?