We are very sorry you are having problems. To be honest, this code hasn't been touched in a decade or so, for two primary reasons...1) very few folks used it, and 2) we are currently eyeballs deep in the MX project.
I pulled the code from version control and had exactly the issues that Jacob mentioned. After updating the project file to Visual Studio 2008, I changed the library reference in the project to link against HEI32_3.lib and pointed it to the proper directory. Other than the nuisance warning about the string functions being potentially unsafe (sure they are, but that's C/C++!!) it built and ran clean.
Not sure why you would be having problems with timeGetTime(), it linked fine for me. It can be replaced with GetTickCount() if timing isn't too critical, or you can construct you own high resolution time function using the low level CPU clock. Something like this works well:
DWORD GetHiResTime()
{
LARGE_INTEGER count, freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&count);
return (DWORD)((count.QuadPart * 1000) / freq.QuadPart);
}
That is the actual code that we use in DirectSOFT for all of our critical comm timing.