views:

135

answers:

4

I've copied (not installed) a system developed with Powerbuilder, from a salvaged hard drive. I want to run the application, but of course, it asks for several DLLs and stuff like that, which are not registered in my current system.

My question: is there a procedure to install a "powerbuilder runtime", so to say, in order to run the application?

A: 

I haven't done PB in a long time ( PB 6.5/7/8 days ) but back then the runtime was pretty straight forward. You had a handful of Win32/PE Dll's ( no COM ) that you could deploy privately with your application. Several were always required and several depended on what objects you created ( ODCB vs PB Native Database drivers, RichText Controls and so on ). It was always pretty easy to profile the application and see which DLL's it was looking for.

Modern versions of PB seem to be crossing over into the .NET world so you might have to install the .NET framework. If so, 3.5SP1 is probably a safe bet.

That's about the best answer I can give without actually having a copy of your app and a copy of PB.

Christopher Painter
+1  A: 

Admittedly I know nothing about PowerBuilder, but I'd try Dependency Walker [http://www.dependencywalker.com] to see which dlls are required by the program.

dschulz
+3  A: 

So, there's a couple of parts to your question. First one is to define the list of DLLs required. The "Application Techniques" manual walks you through the requirements of your application (e.g. do you use a rich text control?) and lets you build a list of required DLLs. If you don't have the manual on your hard drive or on a CD, you can get it from the Sybase manuals site, looking at Archived Products for PB8.

Next, you asked if you have to do anything in particular to "register" the DLLs. The answer is, technically, no. The key is that Windows has to be able to "find" the DLLs when an application "asks" for them. Quite often developers will put the DLLs in the same directory as the application and hope all goes well after that. Microsoft advocates the use of App Paths in the registry. Just open up RegEdit and do a find on "App Paths" for examples. It's quite simple, just a semicolon-delimited list of directories. Windows searches down this list before it goes any place else. Creating this entry and putting your DLLs in one of these directories will ensure Windows can find your DLLs. (As you can tell from the Microsoft-only reference, this is generic Windows, not PB-specific. This is good knowledge to have under your belt for general Windows troubleshooting.)

Good luck,

Terry.

Terry
+1  A: 

Two questions.

  1. What version of Powerbuilder was the app written in?

  2. Give us a list of the DLL's which are missing according to the error messages.

In most cases, the DLL's are present in the application directory but they could also be in the Windows\System32 directory.

Make a list of the missing DLL's and search the old hard drive to see if you can find them. If so, copy them to the new application directory and try the app again.

psant
Copying the DLLs (which were there, in a "shared" folder, as you mentioned) pretty much solved the issue of running the app. Of course, the general issue of whether I can install some sort of PB runtime remains, but I consider my problem solved.
dariopy
Copying everything in the "shared" folder copies over DLLs that aren't run time (e.g. DLLs that run the IDE) that *techically* you're not licensed to deploy. OK, not licensed in any way, shape or form. Now, I don't think the Sybase ninjas (now a division of the SAP ninja army *grin*) will come breaking through your door any time soon, but in addition to inflating your footprint beyond what you need, you might want to look at paring that list down.
Terry
I appreciate the advice, Terry. But I'm not planning to deploy anything; I was just doing a forensic operation, as I stated in the question. Thanks anyway!
dariopy