Actually C:\Program Files\Common Files\Microsoft Shared\VFP is the place of runtimes on a developer PC. It's not a good practive to install there for deployment at clients, as several foxpro apps using runtimes with different service pack levels would fail on that central runtime directory, as it can only contain one service pack level.
The best practive is really to put runtimes into the application directory.
My interpretation of your error rather was, it comes from vfp9r.dll and not is about vfp9r.dll. vfp9r.dll is a dll you don't nned to register at all, if putting it into the application directory.
Reading
it suggests to register vfp9r.dll and mybe that's what you did, actually. In case you install vf9r.dll at some other place than the application directory, it's really needed for the sake of a vfp exe to find it, but as said that has the problem of the servce pack levels, it's not really a good idea.
If you do so, the wiki also says you need msvcr71.dll, and in more detail here:
I'd not register vfp9r.dll, but put it in your application directory, then that problem is removed anyway.
We don't have astorage space issue, so to avaoid DLL hell problems of one central DLL file, which can only be in the system with one version, it's a good practice in general, to not install dlls centrally anymore, but locally.
Bye, Olaf.