10-08-2015 02:55 PM
Hi,
I've seen several forums where people mentions that LV access activeX controls and servers using late bindigns, however, in many programming languages such as VBA, python, etc, it is possible to connect to ActiveX servers using early bindings. I would like to know if LV can do this using something like the instruction makepy in python. There is a procedure in LabVIEW to do early bindings or static dispatch when accessing an ActiveX Server/control?
Best regards
Davis
10-13-2015 07:48 AM
Hi Davis
Correct actually I was looking for some white papers, documents or forums related with that and I found different links that I am going to attach and you can see below.
http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/activating_lv_activex_srv/
http://www.ni.com/white-paper/2983/en/
http://digital.ni.com/public.nsf/allkb/85C2A1BE2B3AC3C18625754B006C23F1
https://decibel.ni.com/content/docs/DOC-9647
I hope this information will be useful for you
Regards
10-13-2015 08:30 AM
Hi David,
Thanks for the link, however, I think I've read them already. There was a clue about doing early bindings in LabVIEW when working with COM servers, somebody proposed to build an OCX control instead of an automation server, but it didn't worked. It looks like the only way to work with early bindings is to use direct connection methods (call library function) instead of COM interfaces. This is weird because some other products of NI allow to work with this functionality (Teststand), however, nobody has an answer for LV (until now).
Again thanks
Best regards
10-13-2015 09:36 AM - edited 10-13-2015 09:39 AM
Not really sure what you mean with static dispatch but what is the reason that late bindings doesn't work for you? Maybe if we understand your problem better we could come up with a solutions that might work anyways.
There are not many things that can't be done without static objects (maybe you want some singleton?) but many that can't be done without dynamic object instantiation.
10-13-2015 09:48 AM
Hi,
We have implemented a COM interface for a DLL using delphi. We are able to connect this DLL using the mentioned interface and "early bindings" using programming languages such as VBA, python, among others. With this DLL it is possbile to perform some iterative procedures commanded from the external language, the problem is that when using "late bindings" these iterative procedures add a cumulative overhead (sometimes 20 times slower than with early bindings).
So, as a result the connection mode to the COM interface is critical for us.
"Static dispatch" is how the programmers of python describe the procedure performed when executing "makepy" for accessing COM interfaces using "early bindings" (http://timgolden.me.uk/python/win32_how_do_i/generate-a-static-com-proxy.html).
I hope you can give us some light about it.
Best regards