You can only specify the calling convention on functions that you write and/or you have the source code of. You cannot change calling conventions of function that are in a library (static/dynamic) since those are already compiled/linked. Important is that the declaration and definition have the same convention.
BTW : you wouldn't gain anything by having (win-)main having the fastcall convention since it's only called once! You would consider fastcall on functions with many small parameters (that fit in registers) that are called very very often during long periodes of time.
The (buildin) startup routine for windows programs will call either WinMain or main (depending on GUI or Console app) with a specific convention. If you write a WinMain or main with a different convention then the linker will complain.