cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

PowerBuilder - Error calling an external function

Former Member
0 Likes
5,702

Hi,

I am trying to call a function located in a DLL that was developed for us. When I try to run the script it is showing me the following error: "Error opening DLL library Encryption.dll for external function at line ....... ".

How I am defining the External functions on PowerBuilder?

Function string EncryptStringAES &
(string plainText, &
string sharedSecret &
) Library "Encryption.dll" Alias For "EncryptStringAES"


Function string DecryptStringAES &
(string cipherText, &
string sharedSecret &
) Library "Encryption.dll" Alias For "DecryptStringAES"

How they are in the DLL ?

The class name is Crypto, and it is in the Encryption namespace.

public static string EncryptStringAES(string plainText, string sharedSecret)

public static string DecryptStringAES(string cipherText, string sharedSecret)

I am using PB 10.2.1 , for now!

Thanks.

View Entire Topic
Former Member
0 Likes

A .Net DLL can only be used by a .Net application unless it is exposed as COM. To use a COM DLL from PowerBuilder you need to use the ConnectToNewObject function to establish an OLEObject variable. See the excellent article on pbdj linked above for more detail.

Alternately you could abandon the .Net DLL entirely and call the encryption functions directly. I have two different sample apps:

http://www.topwizprogramming.com/freecode_cryptoapi.html

http://www.topwizprogramming.com/freecode_bcrypt.html