1. amit kurhe
  2. PowerBuilder
  3. Monday, 16 March 2020 22:16 PM UTC

Migrated application from PB 11.7 to PB 2017 R3. when trying to debug code getting error R0014 error opening external library for external function. Please advise if i have to load the dll. it seems the dll is a third party dll. thanks for the help in advance.  

 

Miguel Leeuwe Accepted Answer Pending Moderation
  1. Tuesday, 17 March 2020 00:57 AM UTC
  2. PowerBuilder
  3. # 1

Hi,

You'll have to give more information if you want anyone to try and help.

regards

Comment
  1. Miguel Leeuwe
  2. Tuesday, 17 March 2020 01:38 AM UTC
Is the clipbxxx.dll somewhere in the path of windows or is it in the same folder as the pbl's or exe?

Can you check out the dependencies of clipbxxx.dll? (you can use "dependency walker"). See if all dependencies are on the machine.

Is C++ runtime installed? Is .Net framework installed?

  1. Helpful
  1. Miguel Leeuwe
  2. Tuesday, 17 March 2020 01:41 AM UTC
Mabye it's a matter of having to install your third party DLL. (maybe by using "regasm.exe ...DLL /codebase")
  1. Helpful
  1. amit kurhe
  2. Tuesday, 17 March 2020 03:04 AM UTC
Hi Leeuwe, thanks for the reply. f_get_string_key function of object f_get_string_key is the function call produces the error. it is in the same folder as project pbl. .net & c++ both are installed on machine.will try other steps n post thanks

  1. Helpful
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Tuesday, 17 March 2020 02:17 AM UTC
  2. PowerBuilder
  3. # 2

Greetings, Amit - 

PowerBuilder can invoke functions in Windows and third-party DLL's that are external to PowerBuilder, using what is called an External Function Definition (EFD). An EFD is a declaration (it does not get executed) that tells the PB compiler the name of the DLL, the name of the function to be called within the DLL, the argument(s) (if any) to be passed to the DLL function, the datatype of each argument, whether each argument is passed by value or by reference, and the return value (if any) expected from the DLL function. In essence, the EFD tells PB how to call the DLL function and exchange data between it and PB. We can't help you troubleshoot this issue without this information.

Typically, the EFD is defined in the object that invokes the DLL function. Find the external function definition. Open the object (probably a window or a user object) that calls the DLL function. Open an existing function or event script in that object. Along the top of the PowerScript editor pane are three dropdown lists. Open the middle dropdown list. The last item listed in that dropdown list should show a small "notepad"-like icon if there are any EFD's defined in this object. If the icon is there, select the last item in this dropdown list to display the EFD('s). Select and Copy everything you see there and paste that into a reply here.

Now find the code that actually calls the external DLL function. Copy it and paste it into a reply so we can inspect it.

We also need the full and exact text of the error message you are receiving during execution. The error message number is not going to help us help you.

Is the DLL name actually Clipbxxx??? I cannot find any info on a DLL by that name on the web.

Find the DLL. It probably resides in the same folder as the application if it has been created by a third-party vendor or internally. From Windows Explorer, navigate to the production application's folder, right-click the DLL, go to Properties, find out as much info about the DLL (who created it, version #, create date, etc.) as you can and report back here.

Regards, John

Comment
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Tuesday, 17 March 2020 03:26 AM UTC
  2. PowerBuilder
  3. # 3

hi,

Like John said: you'll probably have an "external function declaration" for f_get_string_key.

Right click on your target and do a search on "f_get_string_key" It should show where it's being declared. It'll have an indication of which DLL is being used.

Comment
There are no comments made yet.
Roland Smith Accepted Answer Pending Moderation
  1. Tuesday, 17 March 2020 12:49 PM UTC
  2. PowerBuilder
  3. # 4

You need to give us more info. 11.7 isn't a PowerBuilder version, do you mean 11.5?

You also said that f_get_string_key is a function object. You can't define an external function in a function object. In that case it is probably defined as a global external function in the application object.

To really help you, you need to post the actual external function declaration and the code that calls the function.

 

Comment
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Tuesday, 17 March 2020 14:07 PM UTC
  2. PowerBuilder
  3. # 5

If you cannot make a sample application, can you post some code for anyone to try understand what we're talking about?

Thanks

Comment
There are no comments made yet.
amit kurhe Accepted Answer Pending Moderation
  1. Monday, 30 March 2020 16:13 PM UTC
  2. PowerBuilder
  3. # 6

thanks all, issue resolved after registering the MSCOMCT2.ocx which was missing the latest windows version & prerequiste for the animation control.

Comment
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.