function tt_64.exe()
This file is contained in the Tool&Task installation.
FoxPro® (VFP9) is a Microsoft® product with an expired support. It's life cycle ended in January 2015. When you look up FoxPro you will find quite a few advertisements offering their solution to substitute this database language. Why does it need substitution? It is a 32 bit system and does not communicate with 64 bit DLL's in 64 Bit Windows®. Under a 64 Bit Windows operating system, FoxPro ODBC communication does no longer work. Of course, there are workarounds! You may install a additional 32 bit Windows on the same computer. When we proposed this workaround to our main customer after they bought their first 64 Bit machine, we had three month time to find a different solution for the problem which would not impair any other software on the 64 Bit machine and not require a second operating system.
Here is our solution: The environment is any FoxPro Program (e.g. Tool&Task) loading a 32 Bit homer.dll. This DLL (Visual Studio® 2010, C(++)) communicates with ODBC-drivers. We do no longer use FoxPro SQL commands since our driver communication is included in the homer.dll. If we are on a 32 bit Windows, the SQL-driver DLL's are also 32 Bit and homer.dll communicates directly with these drivers. If it is 64 Bit Windows, homer.dll transferes the request to a 64 Bit compiled TT_64.exe. Since this exe has no problem to talk to 64 Bit drivers, we call it the 64 bit bridge for FoxPro. The result comes either back to homer.dll and so to FoxPro, or in case a lot of data are involved, TT_64.exe writes FoxPro tables, memo fields included, and FoxPro will read these tables after completion of the task. You can test it today using Tool&Task on a 64 Bit system and will certainly agree, that speed is no issue.
At start of Tool&Task on a 64 Bit system, FoxPro advises homer.dll to start TT_64.exe and transfers the handle of its own process. TT_64.exe listens to commands transferred by homer.dll and finishes execution as soon as the FoxPro process handle is closed. You can check this in the process manager. Stop VFP9 (=tt.exe) and see the TT_64 process disappearing.
And when other drivers go 64 Bits, their communication will also be diverted over the bridge.
Of course there are quite a few 'And what if ...' questions. But there are also answers for this discussion. There is a point where the FoxPro user interface needs substitution! But we are convinced this change could mainly run automated and the FoxPro-databases will survive!
Would be great to get a short note from you if you want to discuss this topic, we will come back!
if you have a 64 bit Windows and set gTimePunch to 'ON' in m_sysdef, you can see the start process of a Tool&Task session and the integration of tt_64.exe (TimePunch info on integration may change and will not be amendet here. Sycronized time could divert by +100 micro seconds > .0001.)
Example
07:07:58.0346 hom: 36589064 C:\Homer Gmbh\homertask\tt_64.exe PID = 9052
07:07:58.0348 hom: 36605448 leaving buildbridge without error
07:07:58.0354 T&T: 36609544 PID's: Tool&Task: 2476, tt_64.exe: 9052
07:07:58.0356 T&T: 36609544 OPN: Tool&Task session
07:07:58.0358 T&T: 36609544 Program has asInvoker privileges
07:07:58.0376 hom: 36720496 executing 'route print'
07:07:58.0867 hom: 37466344 finished normally, in 2821 Bytes, out 2821 Bytes
07:07:58.0870 hom: 37478632 [Terminated normally in 0.05 seconds]
07:07:58.0937 T&T: 37478632 FoxPro received 2860 bytes - CopyDone=1
07:07:58.2808 hom: 36835032 CriticalSection 'gCopySec' was deleted by thread
07:07:59.0000 b64: 9089864 tt_64 has synchronized