Now onto the game loop question. The best way to implement a SET FRAME rate in your main game loop is to use a high resolution timer (there are articles on this in the articles section on game dev). You could also use Sleep(30), or grab the monitors refreshrate & use that as your limiting factor but those two will never run at the same speed on diffrent systems.
The methodology wouldn't change much if you were running on a diffrent platform. You'd just have to deal with diffrent messages. The high resolution timer function would be basicly the same. I'm not giving you any code here, but if you just create a main game loop and only deal with the above menchoned messages and add in a hi-res timer you'll be fine.