1. Kyle Griffis
  2. PowerBuilder
  3. Monday, 30 December 2019 15:02 PM UTC

Anyone know if there is a 64 bit version of the PFC?

 

Thanks ahead of time!

Kyle

 

Accepted Answer
John Fauss Accepted Answer Pending Moderation
  1. Thursday, 2 January 2020 19:41 PM UTC
  2. PowerBuilder
  3. # Permalink

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.

Comment
  1. Chris Pollach @Appeon
  2. Thursday, 2 January 2020 19:49 PM UTC
Hi John;

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
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Monday, 30 December 2019 15:18 PM UTC
  2. PowerBuilder
  3. # 1

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

Comment
There are no comments made yet.
Kyle Griffis Accepted Answer Pending Moderation
  1. Monday, 30 December 2019 15:32 PM UTC
  2. PowerBuilder
  3. # 2

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. 

Comment
There are no comments made yet.
Roland Smith Accepted Answer Pending Moderation
  1. Monday, 30 December 2019 16:27 PM UTC
  2. PowerBuilder
  3. # 3

Any possible issues would be the same as any non-PFC app, Windows API external function calls and the Windows Registry.

 

Comment
  1. Roland Smith
  2. Monday, 30 December 2019 16:30 PM UTC
Windows API external functions that pass a 'pointer' usually needs to be changed to longptr instead of long. Some calls that pass a structure are more of a problem. I don't think PFC has any of that fortunately.
  1. Helpful
There are no comments made yet.
Kyle Griffis Accepted Answer Pending Moderation
  1. Monday, 30 December 2019 16:53 PM UTC
  2. PowerBuilder
  3. # 4

Hi Roland,

Thank you for replying, looks like I'll probably be refactoring it up to 64 bit.  

 

 

Comment
There are no comments made yet.
Kyle Griffis Accepted Answer Pending Moderation
  1. Thursday, 2 January 2020 20:07 PM UTC
  2. PowerBuilder
  3. # 5

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.

 

 

 

 

Comment
  1. Roland Smith
  2. Thursday, 2 January 2020 20:25 PM UTC
The repository for PFC is https://github.com/OpenSourcePFCLibraries.
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.