DO NOT USE MSVC6.0.
Newset service pack for MSVC6.0 is version 6 and there is also a processor pack for MSVC6.0, but is is still buggy. If you insist on using MSVC6.0, download newest Platform SDK from Microsoft and patches for C++ from dinkumwares site.
If .NET is too slow for you, use MinGW.
About __asm, MinGW uses gcc style of asm.
Example between Microsofts style and MinGW :
Code:
#if defined __unix__ || ( defined _WIN32 && defined __GNUG__ )
// this is for gcc and MinGW
__asm__ __volatile__ (
"rdtsc\n\t"
: "=A" (cycles)
: );
#endif
#if defined _WIN32 && !defined __GNUG__
// this is for MSVC
__asm {
push eax
push edx
rdtsc
mov dword ptr [cycles],eax
mov dword ptr [cycles+4],edx
pop edx
pop eax
}
#endif
long long is not defined in ISO C++ standard, but it is supported both by gcc/MinGW and MSVC.NET. However I recommned not using long, because it is represented differently in 64bit systems (ling is 64b in unix64 and 32b in WIN64)
And for those whiners who don't use MinGW because it does not have IDE, well look here
http://www.bloodshed.net/dev/devcpp.html