You did not explain why GetTickCount() is not working for you. If you call GetTickCount() before you execute your function and again after, subtracting the start value from the end value returns the elapsed time in ms.
It is really quite trivial:
DWORD startCount = GetTickCount();
DWORD endCount = GetTickCount();
DWORD timeSpan = end - start;
Perhaps your problem is that the result is not accurate enough - this is quite common if your function executes fast enough. In that case, you can try out QueryPerformanceCounter(). It is a little more complex to work with but has a much higher accuracy.
If you Google QueryPerformanceCounter() you will find lots of hits, such as
A C++ class for more precise time interval measurement[
^]
Here is an MSDN article[
^]
Here is a discussion on StackOverflow[
^]
Soren Madsen