-
Using DLL
Hi all,
I'm working on Windows machine and I need to use an external DLL written with c#
this is a sample code from x++:
Code:
connector = new Cegeka.AX.IXFE.Connector(); // this is the DLL
connector.initByAooName(parameters.ServiceURL, parameters.ServiceUser, parameters.ServicePassword, parameters.Aoo);
then
Code:
request = new Cegeka.AX.IXFE.SendInvoiceRequest();
request.set_Filename(filename);
request.set_Mode(Cegeka.AX.IXFE.SendMode::XMLString);
request.set_XmlString(eInvoice.XMLOutgoing);
invoicePrintingAsByteArray = this.getInvoicePrintingAsByteArray(eInvoice);
response = connector.sendInvoice(request);
how can I do with Lianja?
Is possible?
Thanks
Fabio
-
Hi Phabio,
looking ahead with Lianja on the roadmap, .Net Core will be integrated some time in the future.
At present, if I were in your position I would see two options:
1) wrap the .Net library with wwDotNetBridge form westwind.com, in VFP, make that into a VfP COM object, and access the COM object as an ActiveX control. A lot of learning there if you haven't already done so.
2) the better way: find out the web API that this dll is accessing, and using Chilkat HTTP control (because you will likely need some security features that Chllkat makes quite easy, plus their error reporting will save a lot of work during testing), write/read from the web interface. This reference should get you started: https://social.technet.microsoft.com...t-web-api.aspx Once you find the real documents with the web calls it should be easier than it looks.
Hank
-
Wow, not easy for me...
thanks
Fabio
-
Hi Phabio,
yes, but the web api stuff has a lot of applicability. My first XML one was painful, as they used non-standard escape sequences. And I hadn't done it before. It's still in production, 7 or 8 years later.
It gets easier -- so long as there is either decent documentation or sample apps from which you can figure out what to do, even it it's in a different development language.
Good luck,
Hank
-
Thanks Hank,
but wut with Lianja, I do not call a DLL?
I have a DLL already written by a colleague of mine that sends the XML file. I should just recall this DLL, passing a few parameters.
-
Hi Phabio,
What you described is a .Net DLL. AX is of course written in .Net. No, you cannot call a .Net DLL from a non-.Net application. Search for "VFP call .Net DLL" if you want more confirmation.
AX has a web API, which is the good news. That is how non-.Net applications interact with AX.
Did your colleague write this DLL? If so, you should be able to, from windows CMD with Admin privileges, issue:
c:\windows\syswow64\regsvr32 <put pathed dll here>
If it succeeds, then yes, you can just do a createobj() with the class name of the dll. If it's a .Net DLL you will get a message that's there's no entry point.
Hank
-
Hi Fabio,
Here is a post about ".NET COM in Lianja - Workaround"
https://www.lianja.com/community/sho...nja-Workaround
Josip
-
I see that Rick Strahl has open-sourced wwDotNetBridge under the MIT license. https://github.com/RickStrahl/wwDotnetBridge
A quick look at the VFP prg, wwDotNetBridge.prg, looks to have very little that wouldn't run in Lianja, and perhaps all of it might.
What this does is allow access to .Net DLL's that haven't been made comvisible. Anyway, it's actually easier than I remembered.
Hank