I forgot to tell where to find the files you need.
On your development computer, or in other words where you installed VFP9 you find
a) the VFP related support DLL files vfp9r.dll, vfp9t.dll, vfp9renu.dll and many more for other languages than ENU togethger with gdiplus.dll, apps of the report engine and help support files within C:\Program Files (x86)\Common Files\Microsoft Shared\VFP
b) msvcr71.dll within C:\Windows\SysWow64
You only need the vfp9t.dll as runtime for DLLs you build with VFP, so it's unnecessary for EXEs built with VFP, also the VFP9r.dll does not need registration, if it is registered EXEs will find it also when it's not in the same folder.
Your EXE might need more than all that when you use some XML related classes and functions or ActiveX controls, so that may still not be the end of it.
But as you say you get a message of an invalid vfp9r.dll, maybe take it from C:\Program Files (x86)\Common Files\Microsoft Shared\VFP. Registering an invalid vfp9r.dll doesn't make it valid. You may compare file/product version and file size of the invalid VFP9r.dll you tried to make valid by registering it with the original VFP9r.dll from the Microsoft Shared\VFP directory on your development computer. There are at least 3 versions of the vfp9r.dll for VFP9 without SP, SP1 and SP2 plus maybe versions of the three hotfixes, you better know with which exact version of the VFP9.exe your EXE was built.
The files in Microsoft Shared\VFP are upgraded by SP installations, so there's no problem to be expected, except when the VFP9.exe was upgraded from one of the three hotfixes Microsoft provided after SP2, those hotfixes didn't come with a simple click and go installer, the setup merely unzipped files and came with readme instructions to copy files also for Microsoft Shared\VFP, so if you/the developer did only upgrade VFP9.exe and not the vfp9r.dll that could explain the discrepancy and invalidity of that DLL for the built EXE.
Chriss