cancel
Showing results for 
Search instead for 
Did you mean: 

newer version of pfccom32.dll?

Former Member
0 Kudos

Am developing with PB 12.1 classic.  We have an app that was migrated from PB 7 through 8, 10, 11, and now 12.  All the way through we brought the old version of the PFC with us.  That approach has served us well, but we have complaints about printing.  I've seen posts about this online too.  If you use the Printer Selection dialog it prints to the default printer even if you select a different one.  Someone said to get a newer version of pfccom32.dll as there is a bug in there that causes this issue.  So I'm looking for a shortcut.  I can't afford the time to install a newer version of the PFC, for example the ones provided by Bruce Armstrong.  I have licenses to older versions, but I'm hoping that someone can tell me where to get a later version, or which version of PB I should install to get a newer version of pfccom32.dll that does not have this problem.  Hopefully the newer version will work with the old version of the PFC, but I am skeptical.  Thanks!

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

I am writing one reply to Marco, Chris, and Bruce.

First, I want to thank all of you for chiming in.

The product I am working on gets very limited attention.  This will be our first release of this product in 4 years.  So using a newer version of the PFC cannot be justified from a development or QA perspective.  Using the newer Print pscript functions is reasonable, but even the effort there is hard to justify for this issue.  I was looking for a quick and dirty solution.  I do not regret sticking with an old version of the PFC.  Users can workaround the issue by temporarily changing their default printer outside of our application.  They generally want to print to the default printer, except when they want to create a PDF from the output.

Thanks guys.  Nice to hear from some PB heavyweights.

Former Member
0 Kudos

Hi Harvey,

Don't be afraid to mark any/all of the answers as helpful or correct.

Good luck babysitting that timebomb.

Mark

former_member190719
Active Contributor
0 Kudos
 I have licenses to older versions, but I'm hoping that someone can tell me where to get a later version, or which version of PB I should install to get a newer version of pfccom32.dll that does not have this problem.

Older versions were licensed.  As of PB10, PFC was open sourced.  Also, as of PowerBuilder 8, pfccom32.dll was removed from PFC and replaced with a call into the PBVM.

http://pbdj.sys-con.com/node/42339

Sybase Inc - Search

One side effect of this is that Sybase no longer needs to provide the PFCCOM32.DLL file with PFC as a result. The only thing that DLL did was support the printer setup dialog call, so the PFC code has been modified to call the new PowerScript function.

That call was then exposed in later versions of PowerBuilder as a native PowerScript function (PrintSetupPrinter).  If you simply want to address the printing issue, I suggest replacing the code that referenced PFCCOM32.DLL with the native PowerScript function.

Former Member
0 Kudos

Hi Harvey;

   Unfortunately, that was absolutely the wrong thing to do by migrating the PFC forward. In essence you have been playing with a "time bomb" just ticking away waiting to take down your PB applications!

  The PFC is to PB what a set of tires are to your car. They are a matched set: rim size, tread pattern, profile height, tread width, etc all determine the cars handling characteristics. Also for example, the type of rubber determines how each tire flexes in tight turns. Thus - you are always warned about mixing and matching tires ... especially from a different manufacturer or in odd pairs.

   The PFC is exactly the same. Each version of the PFC matches its corresponding version of PB. That is still the same today if you look at the PFC website home on CodePlex. When PFC based PB applications are migrated - the PFC (not the PFE) layer should always be replaced to match the PB vehicle.

   Now what you have is totally mismatched PFC for the PB version you are using that includes unnecessary features, deprecated functionality and worse still - a version that does not understand Unicode or the 64bit world.

  Personally, I would invest the time in bringing your PFC layer up-to-date before using the newly migrated PB 12.5.x application. I think its time to get a proper "rebuild" done on your PB vehicle before going out on the MS-Windows race track.  🙂

Regards ... Chris

former_member1333806
Active Participant
0 Kudos

Short answer is: you're screwed. Sorry.

My affection for PFC is unhidden, but the choice to create this DLL, with a hard coded link to a version-specific PowerBuilder DLL, was terrible. This dependency was removed from PFC before it was released to open source, so the source code for this DLL was never released. While, IMHO, this is a better architectural choice (making the PB code of PFC more upgrade-friendly), this eliminates the possibility of getting a more current version of pfccom32.dll that you're asking for.

The options I see for you:

  • Strip out references to pfccom32.dll from your current PFC libraries; suffer the consequences
  • Compare your PFC libraries to one of the open source versions, and copy over selective changes, including those that remove pfccom32.dll functionality (AFAIK, there is not 100% coverage of the functionality pfccom32.dll provided); suffer fewer consequences
  • Update to either the version Sybase open-sourced, or to the version from the PFC open source project; suffer fewer consequences still by getting more bug fixes (several done between PB7 and PB10)

There is no option that is as easy as the one you are looking for, to the best of my knowledge, but there are lots of smart people around that may suggest other options.

Good luck,

Terry.

Former Member
0 Kudos

Terry, thanks for the thoughtful reply.  You confirmed my fears but it was worth a shot.  Harvey

MarSen
Explorer
0 Kudos

Just cheking our application for 64Bit readyness...

PFCCOM32.DLL is obsolete since PB8 is released:

PB 8 introduces the PrintGetPrinter (get name of default printer), PrintSetPrinter (set default printer), and PrintGetPrinters (get the list of printers on the client) functions. It also adds the PrintSetupPrinter function to display the printer setup dialog to the user. One side effect of this is that Sybase no longer needs to provide the PFCCOM32.DLL file with PFC as a result. The only thing that DLL did was support the printer setup dialog call, so the PFC code has been modified to call the new PowerScript function.

Source : PowerBuilder 8 For The Rest Of Us? | PowerBuilder Journal

Regards

   Marco