The last release of ParallelFox was over 8 years ago in January 2012. Also, 3 years have somehow elapsed since CodePlex was shut down and VFPX moved to GitHub. Time most definitely flies! I have been using Doug Hennig’s Project Explorer on some projects. I decided to implement it with my VFPX projects, as well as do some housekeeping on GitHub. In the process, I noticed there were several tweaks/fixes (things checked in years ago on CodePlex) that never made their way into an official release. So, I packaged those changes up into a new release: ParallelFox 1.3.
POTENTIAL BREAKING CHANGE: This release includes and requires ParallelFox.exe version 2.0 dated March 5, 2012. If you are using a previous version, this version needs to be installed and registered. This release is otherwise backwards compatible with previous versions, and it should not require changes in your code.
NOTE: If you previously cloned/downloaded the GitHub repository, you already have the changes in this release, including the latest ParallelFox.exe.
4 Replies to “ParallelFox 1.3 Released”
We use ParallelFox in our system whic is currently in VFP9.
I am testing ParallelFox on VFPA 32bit and 64bit and am getting some issues when I run it on the 64bit version. I hope you can help me resolved it.
In the INIT() of the WorkerProxy there is a code that instantiates VisualFoxPro (loVFP = CreateObject(“VisualFoxpro.Application.” + Substr(version(4),2,1)) which I changed to loVFP = CreateObject(“VisualFoxpro.Application.A”) . The problem is the object created is incomplete, it complains that it is corrupted. Note that it works fine with VFPA 32 bit.
Note as well that I compiled all the classes and prgs and rebuilt ParallelFox.EXE in VFPA 64 bit.
Please let me know how to fix this issue.
I have not used or done any testing with VFPA 32-bit or 64-bit, but I can attempt to provide some pointers. Let’s first narrow down whether the problem is in debug mode or normal mode. VisualFoxPro.Application is only used when running in debug mode. If that’s when you are having the problem, then see what happens when you try to CreateObject(“VisualFoxpro.Application.A”) from the VFPA x64 Command Window. If that doesn’t work, then I think you’ll have to consult with the creator of VFPA (Chen). If the problem only occurs when debug mode is off, then try CreateObject(“ParallelFox.Application”) to see what happens.
As I said, I haven’t done any testing with VFPA, but while working on DotNet2Fox, I noted that a 64-bit .NET app was able to call a 32-bit VFP COM object, as long as it is an out-of-process EXE. That raises the question… what happens if you have 32-bit and 64-bit versions of the same COM object registered on the system? Which version will the 64-bit app call? I don’t know the answer to that, but maybe that is causing a conflict. To create a separate 64-bit ParallelFox.exe, you could try the following:
– Create a copy of ParallelFox.pjx named ParallelFox64.pjx.
– In Project Info->Servers, change “ParallelFox” to “ParallelFox64” in Description, Project Name, and Type Library.
– Rebuild the EXE and select Regenerate Component IDs (just this one time). That will give the 64-bit version a different GUID than the 32-bit version.
– In WorkerProxy.Init(), instantiate the 64-bit version by changing the code to: This.oApplication = CreateObject(“ParallelFox64.Application”)
I’m not sure if this will help, but it would hopefully resolve any potential conflicts between the 32/64 bit versions. Hope this helps.
Thanks a lot Joel, Chen replied to my post in Foxite and mentioned that there is an issue with the 64 bit version of VFPA and he will fix it when he has more time.
Thank you for your reply. I tried your suggestion to create a copy of PrallelFox.pjx and named it ParallelFox64.pjx. I set the Project Info changes and rebuilt the EXE with Regenerate Component IDs. I also adjusted the line in the WorkerProxy.init() to use the new ParallelFox64.exe. I ran your test program and initial error I got is “OLE IDispatch exception code 0 from Visual Foxpro for Windows: 1:File’cwindows\system32\parallelfox.vcx’ does not exist”. I added the class to the folder, rerun the test, but got another error “OLE error code 0x800706ba: The RPC server is unavailable.” This error is generated when the workerProxy.SendCommand() – This.oWorker.SendCommand(loCommand). I will also try to reach out to Chen and see what he thinks. Note that I get the same error ‘The RPC server is unavailable’ when I run the test program with Debug mode set to .T.. I also tried to create the VisualFoxpro.Application.A in the VFP command window, and it created the object but not the same as the object when I create it in the 32bit version. I have a screen shot of the objects in my post in Foxite. https://www.foxite.com/archives/0000485608.htm