Hi, Rob !
As for your 2nd question :
cl /Gz double_test double.lib
works fine.
/Gz forces __stdcall which means : look for decorated names like _my_double@4 (while default __cdecl makes the linker look for decorated names like _my_double = exactly the LNK2019 error you get)
See http://msdn.microsoft.com/en-us/library/x7kb4e2f.aspx for (C) decorated names.
Regards,
Jean-Marc