Anyone know if there is a 64 bit version of the PFC?
Thanks ahead of time!
Kyle
Anyone know if there is a 64 bit version of the PFC?
Thanks ahead of time!
Kyle
Hi, Kyle -
I've previously looked into this issue, and here's what I know:
The following PFC-level objects need to be refactored: pfc_n_cst_environment, pfc_n_cst_filesrv, pfc_n_cst_filesrvunicode, pfc_n_cst_numerical, pfc_n_cst_platform, & pfc_n_cst_platformunicode. Some of these have internal object structures that also need refactoring, to replace certain Long/ULong members with the LongPtr datatype.
If any API calls used by the PFC set the length of a structure argument in the structure itself or as a separate argument, the length will probably increase in 64-bit due to various reasons.
The PFC-level objects reference the following Windows system DLL's: user32,dll, kernel32.dll, gdi32.dll, winmm.dll, & shell32.dll. The DLL names do NOT change in a 64-bit executable (there is no user64.dll, for example).
Of course, any WinAPI functions invoked by PFE-layer objects (local extension objects inherited from the PFC-layer objects, for those not familiar with PFC architecture) will also need to be refactored.
Hope this helps you a little.
Thanks John,
Your list is matching mine and so far so good. We ought to post the changes so others can get to them too.
Hi Roland,
Thank you for replying, looks like I'll probably be refactoring it up to 64 bit.
Any possible issues would be the same as any non-PFC app, Windows API external function calls and the Windows Registry.
Thank you Chris.
I'm keeping my finger crossed it's out there, if not I'll be refactoring it up to 64 no choices here, they are too heavily invested with the PFC.
Hi Kyle;
FWIW: From what I can tell since the PFC was open sourced in PB 10.0, the PFC development basically stagnated in the PB 11.x time frame. From there, the PFC was basically compiled forward ("as is") from 11.5.x onward into each new PB version. The current PFC 2017 is still basically the same as PB 11.5 PFC code which of course, was way before newer features that were added to PB in 12, 12.5, 12.6, 2017Rx and now 2019Rx versions. Thus I am pretty sure that the PFC is not 100% 64bit compliant, merely 32 bit and only PB11.x minded feature wise. Just my educated guess based on these observations. Maybe someone else can also add in their $0.02
Regards ... Chris
I suspect that the MS-Windows API's will need to the refactored from ANSI to Unicode as well.
For example: FindWindowA => FindWindowW
Regards ... Chris