- François Rossignol
- PowerBuilder
- Monday, 20 November 2017 08:15 AM UTC
Hi,
In a previous question I found out about Robert Giesecke unmanaged exports which allows to call .net function from PB.
I got it working with longs and strings but can't make it work with arrays and structures.
For example in my VB.net dll I have the following code
_
Public Function GetCollectionImprimantes( ByRef liste_imprimantes As String()) As Int32
Dim ll_ret As Int32
Dim ll_index As Int32 = 0
ll_ret = 1For Each ls_nom_imprimante As String In System.Drawing.Printing.PrinterSettings.InstalledPrinters
ll_index += 1
liste_imprimantes(ll_index) = ls_nom_imprimante
Next
Return (ll_ret)
End Function
It's declared in PB 2017 with as a local external function
function long GetCollectionImprimantes(ref string liste[]) library "SFWHelpers.dll"
And used as
string liste[]
this.helpers.GetCollectionImprimantes(ref liste)
When i try to use arrays or structures I've got a PB error message
Error: Error calling external function %s at line ...snip...
The %s is what is actually written in the message
I know that for this peculiar example I can do it in native PB but it's just an example.
I know I could do COM visible dll with regasm (its what I did on the past) but I'd like to avoid that for ease of deployment and updates (thousands of computers, more than a hundred customers, most of them no IT on site)
I could for the side by side manifest but never managed to make it work (PB 12.5 at the time I tried it)
Am I doing it wrong ? Is that a bug I should report to support or maybe it's just not supported.
Regards,
François
Find Questions by Tag
Helpful?
If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.